(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Bash/Linux/sed】開始文字と終了文字を与えてその部分を置換する

スポンサーリンク

やりたいこと

以下のような文があるとして

ef&abc;gh

&と;で挟まれている箇所を"A"で置換して

efAgh

とする。

環境情報
sed (GNU sed) 4.4

やり方

sedコマンドを用いて以下のように置換をかける。

$ sed -e 's/&.*;/A/g'

実際に置換をかけた結果は以下。

# echo "ef&abc;gh" | sed -e 's/&.*;/A/g'
efAgh

以下、補足です。

補足

任意の二つの文字で挟まれた箇所を切り取るワンライナーとなります。
例えば別の例として以下のような例でも、正常に動作していることが分かります。

$ echo "abcdefghijklmn" | sed -e 's/d.*h//g'
abcijklmn

以上、ご参考ください。