你能打印到awk中的特定列吗?

时间:2016-03-04 17:35:59

标签: awk

我已经开始在awk中进行文件比较。有没有办法将数据打印到特定列?我正在使用的这本书并没有在印刷版中触及这一点,我似乎无法找到我想要的东西。

假设我想要打印一行,还要在特定空白列[$ 12]内打印一个字符串(“test”)。我能这样做吗?谢谢你的帮助

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

1 个答案:

答案 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'