2013-11-15 63 views
1

我有一个文件,我想将特定字符添加到特定行中的多个特定列。对于eaxample我的文件是将字符附加到特定行中的特定多列

shirts pants tshirts greet 
100000 11111 1200000 131313 
123456 15823 1542358 752256 

我想补充销往全国列第二之后的字符(可以有多个列,未知),只在第一行。我可以选择第一行使用和列使用

NR<2 and NF>2 

但是,如何追加到每个字段?我想我的答案是

shirts pants soldtshirts soldgreet 
100000 11111 1200000 131313 
123456 15823 1542358 752256 

回答

2

你是对使用NR<2NF>2。像这样的东西可能是一个解决方案:

$ awk 'NR==1{for (i=3; i<=NF; i++) $i="sold"$i}1' a 
shirts pants soldtshirts soldgreet 
100000 11111 1200000 131313 
123456 15823 1542358 752256 

NR==1(第一行)从3日到最后一个字段追加循环“卖”给每个人。然后1评估为真,并在所有情况下打印整行。

0
awk 'NR==1{x=$1"\t"$2;for(i=3;i<=NF;i++)x=x"\tsold"$i;$0=x}1' file 
2

这可能会为你工作(GNU SED):

sed -i '1s/\S\+/sold&/3g' file 
相关问题