このようなファイルがあります。はい(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