我需要使用Sed Editor中的Regular Expression屏蔽4个字符后的字符串。
示例:1234567890
结果:1234XXXXXX
你能帮助我吗?
答案 0 :(得分:2)
在GNU sed中:
echo "1234567890" | sed "s/./X/5g"
答案 1 :(得分:0)
关注awk
可能会对您有所帮助。
echo "1234567890" | awk '{for(i=5;i<=length($0);i++){val=val?val "X":"X"};print substr($0,1,4) val;val=""}'
输出如下。
1234XXXXXX
答案 2 :(得分:0)
$echo "1234567890"|awk '{for(i=5;i<=NF;i++)$i="X"}7' FS="" OFS=""
1234XXXXXX
答案 3 :(得分:0)
使用perl,您可以在替换文本中放置任意perl代码:
perl -pe 's/^(....)(.*)/$1 . "X" x length($2)/e' <<END
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
END
1
12
123
1234
1234X
1234XX
1234XXX
1234XXXX
1234XXXXX
1234XXXXXX
答案 4 :(得分:0)
使用sed
count=4
echo "1234567890" | \
sed ':A;s/\(\(.\)\{'"$count"'\}\)\(X*\)[^X]/\1\3X/;tA'
或
sed -E ':A;s/((.){'"$count"'})(X*)[^X]/\1\3X/;tA'