2016-03-04 52 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'