最後の行の後のテキストファイルにパターンを挿入する

最後の行の後のテキストファイルにパターンを挿入する

以下のコードを使用して、特定の行の後の行をユーザー変数のテキストファイルに挿入しています。

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れます。awkfor

    END {
        for (i=1; i<=n; i++)
             printf pattern, j=user[i], j, j
    }

印刷したい場合みんなfile行を使用している場合は、コードブロックの末尾にあるエントリをdata削除する必要があります。これにより、入力処理が停止し、対応するブロック(存在する場合)に分岐してスクリプトが終了します。exit/specific_line/awkEND

関連情報