使用 awk 将记录附加到文件

Par*_*nde 2 awk csv

我正在使用 awk 进行多对一过滤,即读取多个 .csv 文件,并使用条件将这些文件中的记录过滤到另一个 csv 文件中。命令是

awk -F, '{if($1=="OPTSTK"&&$13>0)print > "stockoptions.csv";}' fo1.csv fo2.csv
Run Code Online (Sandbox Code Playgroud)

这个命令为我完成了这项工作,除了当我为一组新的 csv 文件(比如 fo3.csv 和 fo4.csv)运行这个命令时,上一个命令执行的输出被覆盖。有没有办法将后续执行的输出附加到第一次执行命令的输出?

Kus*_*nda 5

是的,使用>>代替>

例如:

awk -F, '$1 == "OPTSTK" && $13 > 0 { print >> "stockoptions.csv" }' fo1.csv fo2.csv
Run Code Online (Sandbox Code Playgroud)

或者,让 shell 进行重定向并缩短awk命令的长度:

awk -F, '$1 == "OPTSTK" && $13 > 0' fo1.csv fo2.csv >>"stockoptions.csv"
Run Code Online (Sandbox Code Playgroud)