awkコマンドを使用してtailコマンドの各行の前に変数値プレフィックスを追加する方法

awkコマンドを使用してtailコマンドの各行の前に変数値プレフィックスを追加する方法

私はここに来ました。質問ファイル名の値を変数に保存し、コマンドでprint静的値の代わりにこの変数を使用する必要があります。

これは私の実験ですが、期待どおりに機能するように線を修正することはできません。

filename=catalina.$(date +"%Y-%m-%d").log; tail -n+1 -F $filename | awk '{printf $filename"*"; print $0}'

ベストアンサー1

-vオプションの使用awk

filename=catalina.$(date +"%Y-%m-%d").log
tail -n+1 -F "$filename" | awk -v file="$filename" '{printf "%s* %s\n",file,$0}'

どこ

  • 単一のprintfファイル名(ファイル変数)*と次の行を使用します。
  • FILENAME内部変数を使用しませんawk

おすすめ記事