さらに多くの検索パターンがある場合は、それらをファイルに保存し、そこから置換を読み取ることができます。たとえば、次の内容だとしreplacements.txt
ます。
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
次に、N個の置換のリストを読み取って、次のように置き換えることができます。
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
ノート:
- これは、検索文字列にスペースが含まれておらず、奇妙な文字をでエスケープする必要があることを前提としています
replacements.txt
。
sed
交換ごとに1つ実行されますが、多くの交換操作がある場合は時間がかかることがあります。
- 少し時間がかかることを気にしない限り、任意の数の置換(数千または数百万など)を処理できます。
別のオプションは、上記をsed
スクリプトとして書くことです:
s/www\.abcdef/www\.test\.abcdef/g;
s/www\.kmlnop/www\.test\.klmnop/g;
s/aaaa/bbbb/g;
s/cccc/dddd/g;
s/eeee/ffff/g;
その後、ファイルに対してスクリプトを実行すると、すべての置換が一度に行われます。
sed -f replace.sed infile.txt