ヘッダー、トランジション、フッターを表示するAWKコマンド?

ヘッダー、トランジション、フッターを表示するAWKコマンド?

私は次のコマンドを使用しました。

awk 'BEGIN{print "Header"};{FIELDWIDTHS ="3 4 3"}{print $1"|"$2"|"$3"
|"};END{print "Footer"}' file8

実際 -

Header
1234567890|||
234|5678|901|
345|6789|012|
098|7654|321|
Footer

予想する -

Header
123|4567|890|
234|5678|901|
345|6789|012|
098|7654|321|
Footer

ベストアンサー1

{FIELDWIDTHS ="3 4 3"}最初の行を読み取って解析した後にのみ操作が適用されるため、最初の行にエラーが発生します。

FIELDWIDTHSブロック内に定義を移動すると、期待BEGINどおりに機能します。

awk 'BEGIN{print "Header"; FIELDWIDTHS ="3 4 3"}{print $1"|"$2"|"$3"|"};END{print "Footer"}' file8

これはFIELDWIDTHSGNU Awk()でのみサポートできますgawk

おすすめ記事