私は次のコマンドを使用しました。
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
これはFIELDWIDTHS
GNU Awk()でのみサポートできますgawk
。