回答:
長い文字列をbash変数に保存して、sedコマンドで使用できます。
string=[long1][long2]
replace= [long3][long4]
sed -e 's/'"$string"'/'"$replace"'/' file
を使用できる場合はperl、x修飾子を使用して長いパターンを分割できます。
perl -e 's/
[long1]
[long2]
/[long3][long4]/x' file
sed "s/$string/$replace/" file.txt結構です。
replace=。
sed 's'/\
'[long1]'\
'[long2]'\
'/'\
'[long3]'\
'[long4]'\
'/' file.txt
新しい行がインデントされていない場合、バックスラッシュで複数の行に分割することはできます。
$ echo "a,b" | sed 's/\(.'\
> '\),\(.\)/\2-\1/'
b-a
GNU sed 4.2.2でCygwinでテスト済み
GNU sed version 4.2.1、それは動作しません。
別の側面:
[long]上記のアイテムはどの程度保守可能ですか?
短くて明確に句を保持できるほど、時間の経過や(sed-external)ファクトが提供する機能の周りで変化するにつれて、それらの句を簡単に変更および強化できます。
例えば
sed \ -e 's / [minimal-s1] / [minimal-r1] /' \ -e 's / [minimal-s2] / [minimal-r2] /' \ -e 's / [minimal-s3] / [minimal-r3] /' \ -e 's / [minimal-s4] / [minimal-r4] /'
...努力して好むものかもしれません。