我有一份文件,其格式如下:

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

有什么简单的方法做这种事吗?
提前谢谢。

最佳答案

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

关于linux - 更改文件中附加数字的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33823298/

10-09 03:45