我已经开始在awk中进行文件比较。有没有办法将数据打印到特定列?我正在使用的这本书并没有在印刷版中触及这一点,我似乎无法找到我想要的东西。
假设我想要打印一行,还要在特定空白列[$ 12]内打印一个字符串(“test”)。我能这样做吗?谢谢你的帮助
{print $0, "test"[$12]}
答案 0 :(得分:3)
您可以轻松覆盖现有字段
$ awk '... {$12="test"; print}' file
如果你有你的代码和样本输入输出,人们可以建议更好的方法,因为通常你要求的不是你真正需要的。
e.g。
$ 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'