正则表达式用XXXXXXXXXX替换电话号码

时间:2017-06-13 12:47:22

标签: regex awk sed replace

我有一个包含少量电话号码和其他重要数据的文本文件。我想将所有电话号码替换为预定义的文本,比方说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

3 个答案:

答案 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