私はawkを使用して複数の.csvファイルを読み込み、条件を使用してそのファイルのレコードを別のcsvファイルにフィルタリングする多対一フィルタリングを実行しています。コマンドは
awk -F, '{if($1=="OPTSTK"&&$13>0)print > "stockoptions.csv";}' fo1.csv fo2.csv
このコマンドは、新しいcsvファイルセット(fo3.csvやfo4.csvなど)に対してこのコマンドを実行したときに以前のコマンド実行の出力を上書きすることを除いて、私のためにアクションを実行します。コマンドの最初の実行出力に後続の実行出力を追加する方法はありますか?
答え1
はい、>>
代わりに使用してください>
。
たとえば、
awk -F, '$1 == "OPTSTK" && $13 > 0 { print >> "stockoptions.csv" }' fo1.csv fo2.csv
または、シェルがリダイレクトを実行してコマンドを減らすようにしますawk
。
awk -F, '$1 == "OPTSTK" && $13 > 0' fo1.csv fo2.csv >>"stockoptions.csv"