文字列を見つけてSUBSTRINGに置き換えます。

文字列を見つけてSUBSTRINGに置き換えます。

このようなファイルがあります。はい(test.txt)

$$BATCHCTRL=TEST-012017
$$STATE=CA AZ
$$FROM_DATE=01/10/2017
$$TO_DATE=01/30/2017

私がしなければなら$$STATE=CA AZないのは、これを値の最初の2バイトに置き換えることだけです。つまり(CA)。

出力ファイルは次のようにする必要があります。

$$BATCHCTRL=TEST-012017
$$STATE=CA
$$FROM_DATE=01/10/2017
$$TO_DATE=01/30/2017

ベストアンサー1

私は一対の文字がSTATE大文字にあると仮定します。それ以外の場合は交換する必要があります[A-Z] [A-Za-z]

次の簡単なコマンドを使用できます。

sed -Ei 's/^\$\$STATE=([A-Z]{2}) ([A-Z]{2})/\$\$STATE=\1/g' sed_file

$$likeで始まる行を一致させ、それをandの最初のサブ式$$STATE=AB CDに置き換えます。$$STATE\1

編集:追加の一重引用符が必要な場合は、以下を使用してください。

sed -Ei 's/^\$\$STATE=([A-Z]{2}) ([A-Z]{2})/\$\$STATE='"'"'\1'"'"'/g' sed_file

おすすめ記事