您可以打印到awk中的特定列吗?

您可以打印到awk中的特定列吗?,awk,Awk,我已经开始在awk中进行文件比较。是否有方法将数据打印到特定列?我正在使用的这本书在印刷部分没有涉及到这一点,我似乎找不到我想要的确切内容 假设我想打印一行,但也要在特定的空白列[$12]内打印一个字符串(“test”)。我可以这样做吗?谢谢你的帮助 {print $0, "test"[$12]} 您可以轻松覆盖现有字段 $ awk '... {$12="test"; print}' file 如果您有代码和示例输入输出,人们可以提出更好的方法,因为通常您所要求的并不是您真正需要的 e、 g

我已经开始在awk中进行文件比较。是否有方法将数据打印到特定列?我正在使用的这本书在印刷部分没有涉及到这一点,我似乎找不到我想要的确切内容

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

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

您可以轻松覆盖现有字段

$ awk '... {$12="test"; print}' file
如果您有代码和示例输入输出,人们可以提出更好的方法,因为通常您所要求的并不是您真正需要的

e、 g

awk
如果添加到比您当前拥有的索引更高的索引,也将扩展(添加缺少的字段)

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

a,b,c, ,e,,,,,,,test
您还可以通过将打印替换为
1
来缩短代码,例如

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

除非你正在读阿诺德·罗宾斯(Arnold Robbins)的《有效的Awk编程》(Efficient Awk Programming,第四版)一书,否则就把这本书扔掉。如果你读的是正确的书,那么它会告诉你你想知道什么。
... '{$4="test"}1'