我有一个包含少量电话号码和其他重要数据的文本文件。我想将所有电话号码替换为预定义的文本,比方说XXXXXXXXXX。
如何使用sed / awk做到这一点?正则表达式
^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$
对我不起作用。
输入:
Add me 7598128789
Pls add mi 9761500634
Add 8870504046
spam post
magar maddam is not required
all hero hain
All follows
输出:
Add me XXXXXXXXXX
Pls add mi XXXXXXXXXX
Add XXXXXXXXXX
spam post
magar maddam is not required
all hero hain
All follows
答案 0 :(得分:1)
你可以在perl中做到。
cat a |perl -npe 's/\d{10}/XXXXXXXXXX/g'
答案 1 :(得分:1)
尝试:
gawk '{gsub(/[0-9]{10}/,"XXXXXXXXXX");print}' Input_file
简单地用10个X字符串替换10个连续数字,然后打印该行。
答案 2 :(得分:0)
GNU sed
:
sed -r 's/\b[0-9]{10}\b/XXXXXXXXXX/g' filename