-1

我有一个文件:

AA BB CC DD
BB CC DD AA 
BB CC DDA AA
CC DD AA BB

此命令打印以下行:

$ awk '{if($3=="DD") print}' file
BB CC DD AA

我希望这个条件写入数组。此命令不起作用:

$ awk '{if($3=="DD") split($0, a, RS); print a[1]}' file

BB CC DD AA 
BB CC DD AA 
BB CC DD AA

感谢您的帮助。

编辑:

我想从模式'DD'中写入一系列行。

这些是很好的解决方案:

awk '{if($3=="DD") {split($0, a, RS); print a[1];}}' file
awk '$3=="DD"{split($0, a, RS); print a[1];}' file

感谢您的帮助。

4

2 回答 2

1

我不完全清楚你想做什么,但试试这个:

awk '$3 == "DD" { print $1 }' file

在 awk 中不需要您进行的手动拆分。

于 2012-04-06T08:39:33.167 回答
1

无论是否,您都在打印结果$3 == "DD",这似乎不太可能是您想要的。

您还与RS未在此处设置的拆分,因此对于示例输出,请比较:

awk '{if($3=="DD") {split($0, a); print a[1];}}' file

而是拆分(因此仅针对上述内容FS打印)。BB

于 2012-04-06T08:40:23.667 回答