我的文件格式如下:
xcart 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
xcart 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
xcart 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
.............
也就是说,每三行都有一行以'xcart'开头。数字的值对于这个问题无关紧要。
我想更改“xcart1”,“xcart2”,“xcart3”等每次出现的'xcart'。我们假设我有120次出现'xcart'。
所以,我文件的最终形式是:
xcart1 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
xcart2 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
xcart3 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
.............
.............
xcart120 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
有没有一种简单的方法可以做这样的事情?
提前致谢。
答案 0 :(得分:1)
awk很乐意做这样的工作:
awk '$1=="xcart"{$1=$1"" ++i}7' file
以你的例子:
kent$ awk '$1=="xcart"{$1=$1"" ++i}7' f
xcart1 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
xcart2 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0
xcart3 1.0 1.0 1.0
1.5 1.5 1.5
3.1 2.0 0.0