ペアのファイルに対して実行しているawk
スクリプトがあります。私はそれをこのように呼んでいます:
awk -f script.awk file1 file2
script.awkは次のようになります。
BEGIN {FS=":"}
{ if( NR == 1 )
{
var=$2
FS=" "
}
else print var,"|",$0
}
各ファイルの最初の行はコロンで区切られています。1行おきに、デフォルトの空白ファイルの区切り文字に戻す必要があります。
これは最初のファイルでは正常に機能しますが、BEGINブロックは1回しか処理されないため、各ファイルの後にFS
リセットされないため失敗します。:
tldr:渡すファイルごとにawkにBEGINブロックを1回処理させる方法はありますか?
重要な場合に備えて、これをcygwinbashで実行しています。