我有一个这样的多行重复文本,每行都是相同的。
aaa0bbb
aaa0bbb
...
aaa0bbb
如何将其更改为
aaa0bbb
aaa1bbb
...
aaa2bbb
我试图用awk或sed处理它,但这对我来说很难。
答案 0 :(得分:0)
Something like in awk
may do the work
awk 'BEGIN {i=0} {printf("%s%c%s\n", substr($0, 1, 3), i, substr($0, 5, length($0) - 4));i++}' inputfile
NB! After 10-nt row the number will have two digits and so on.
答案 1 :(得分:0)
You can try Perl, just specify the pattern in brackets aaa0bbb as (aaa)(0)(bbb) in the below one-liner.
$ cat mkb.txt
aaa0bbb
aaa0bbb
def
ghi
aaa0bbb
aaa0bbb
$ perl -pe ' s/(aaa)(0)(bbb)/sprintf("%s%d%s",$1,$kv{"$1$2$3"}++,$3)/ge ' mkb.txt
aaa0bbb
aaa1bbb
def
ghi
aaa2bbb
aaa3bbb
$