更改附加数字的文件中的单词

时间:2015-11-20 09:35:26

标签: linux bash ubuntu awk

我的文件格式如下:

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

有没有一种简单的方法可以做这样的事情?

提前致谢。

1 个答案:

答案 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