awk gsub コマンドの出力をファイルにリダイレクトする

awk gsub コマンドの出力をファイルにリダイレクトする

コンマ区切りの csv ファイルの引用符間のコンマを削除する方法についての回答を、StackExchange で見つけました (必要な担当者がいないため、コメントできません)。

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile

出力をコンソールに印刷するのではなく、ファイルにリダイレクトするにはどうすればよいですか?

'>' をさまざまな組み合わせで試してみましたが、空のファイルまたはエラーしか生成されませんでした。 '>>' を使用すると、毎回エラーが発生しました。

答え1

標準リダイレクトを使用すると、標準出力で機能します。

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile > test.out
$

それでもエラーは画面に表示されます。

ただし、エラーと標準出力をファイルに出力したい場合は、次を実行します。

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2>&1 > test.out
$

または、エラーを標準出力から分離することもできます。

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2> errors.out 1 > test.out

関連情報