2016-03-04 91 views
1

我已經開始在awk中做文件比較的事情。有沒有將數據打印到特定列的方法?我正在使用的書在打印部分沒有涉及到這一點,我似乎無法找到我正在尋找的東西。你可以打印到awk中的特定列嗎?

比方說,我想打印一行,但也打印一個字符串(「測試」)在一個特定的空白列[$ 12]。我可以這樣做嗎?感謝您的幫助

{print $0, "test"[$12]} 
+0

除非您正在閱讀Arnold Robbins編寫的第4版Effective Awk Programming,請將該書扔掉。如果你正在閱讀正確的書,那麼它會告訴你你想知道什麼。 –

回答

3

您可以覆蓋現有油田容易

$ awk '... {$12="test"; print}' file 

,如果你有你的代碼和樣本輸入輸出的人可以建議,因爲通常是更好的方法,你問的是不是你真正需要的。

例如

$ echo 'a,b,c, ,e' | awk -F, -v OFS=, '{$4="test"; print}' 

a,b,c,test,e 

awk也將延長(添加缺少的資料)添加到索引比你目前有

$ echo 'a,b,c, ,e' | awk -F, -v OFS=, '{$12="test"; print}' 

a,b,c, ,e,,,,,,,test 

你也可以通過1更換打印縮短了代碼更高,如

... '{$4="test"}1'