2013-11-15 62 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 
相關問題