如何用相同长度的唯一数字替换特定长度的字符

时间:2017-03-03 10:20:03

标签: bash shell unix

我想用1111111111111111替换文件file.txt中的16位数,即使用UNIX命令替换16次1

2 个答案:

答案 0 :(得分:1)

试试这个 -

sed -E 's/[0-9]{16}/1111111111111111/g' f

答案 1 :(得分:0)

的Perl:

perl -plE 's/\b\d{16}\b/q{1}x16/ge' < file.txt

line A 222222222222222   and 222222222222222    # fifteen
line B 3333333333333333  and 3333333333333333   # sixteen
line C 66666666666666666 and 66666666666666666  # seventeen

产生

line A 222222222222222   and 222222222222222    # fifteen
line B 1111111111111111  and 1111111111111111   # sixteen
line C 66666666666666666 and 66666666666666666  # seventeen

perl -plE 's/\b(\d+)\b/q{1} x length($1)/ge'
来自相同输入的

将产生

line A 111111111111111   and 111111111111111    # fifteen
line B 1111111111111111  and 1111111111111111   # sixteen
line C 11111111111111111 and 11111111111111111  # seventeen