sedを使用して文字列を見つけ、他の行の別の文字列に置き換える方法は? [閉鎖]

sedを使用して文字列を見つけ、他の行の別の文字列に置き換える方法は? [閉鎖]

次のファイルがあります。

BEGIN
Name "TIPO_RECORD"
SqlType "12"
         Precision "255"
Name "Test"
         SqlType "12"
         Precision "255"
Name "xxxx"
         SqlType "12"
         Precision "255"
Name "Test"
         SqlType "12"
         Precision "255"
END

文字列「TEST」を探し、その後の最初の文字列「PRECISION」を「TRY」に置き換えるスクリプトが必要です。

ベストアンサー1

例のテキストを置き換えようとすると、次のことができます。

sed '/Name "Test"/ {n;n;s/Precision/Try/;}'

大文字と小文字を区別しないようにするには、以下を試してください。

sed '/Name "[Tt][Ee][Ss][Tt]"/ {n;n;s/[Pp][Rr][Ee][Cc][Ii][Ss][Ii][Oo][Nn]/Try/;}'

またはもっと簡単にGNUを使用してくださいsed

sed '/Name "Test"/I {n;n;s/precision/Try/i;}'

おすすめ記事