以下のコードを使用して、特定の行の後の行をユーザー変数のテキストファイルに挿入しています。
echo -n "WHICH STATIONS?"
read station
echo ${station[${i}]}
awk -v input="$station" '
BEGIN {
n = split(tolower(input), user)
pattern = " force %-4s npos 0. .0001\n" \
" force %-4s epos 0. .0001\n" \
" force %-4s upos 0. .0001\n"
}
{print}
/specific_line/ {
for (i=1; i<=n; i++)
printf pattern, j=user[i], j, j
exit
}
' ./data > data_2
pattern
データファイルの最後の行の後に挿入する必要があります。上記のコードをどのように修正できますか?
答え1
これをスクリプトの最後に追加すると、終了する前にループが実行さawk
れます。awk
for
END {
for (i=1; i<=n; i++)
printf pattern, j=user[i], j, j
}
印刷したい場合みんなfile行を使用している場合は、コードブロックの末尾にあるエントリをdata
削除する必要があります。これにより、入力処理が停止し、対応するブロック(存在する場合)に分岐してスクリプトが終了します。exit
/specific_line/
awk
END