その後、awkコマンドの出力にヘッダーを追加する方法は?

その後、awkコマンドの出力にヘッダーを追加する方法は?

私はawkを使用して別のファイル(入力)からファイル(出力)を生成します(ヘッダーをスキップ)。

awk 'NR==1{next} $3==1 {print $1"\t"$2}' input > output

その後、後で計算できるヘッダー情報を取得し、sedを使用してそれを追加しました。

sed -i "1s/^/head1\thead2\n/" output

しかし、sedは非常に遅いので、より良い方法があるかどうか疑問に思います。 awk結果を保存してからヘッダー情報を取得してファイルに書き込むのと同じですか?

ベストアンサー1

ファイルに本文があり、output必須ヘッダーが()というファイルにある場合は、次のようにヘッダーを挿入できます。headerprintf "head1\thead2\n" > header

ed -s output <<< $'0r header\nw\nq'

診断出力を抑制することを示します-s。これは、で読み込まれたバイト数output、で読み込まれたバイト数、header最後に書き込まれたバイト数です。

edコマンドは次のとおりです。

  • 0r header- 0行目からファイルの内容を読みます。header
  • w- ファイルの書き込み
  • q- 編集終了

おすすめ記事