2

テキストファイルがあり、sedエディターを正規表現で使用して、その中の文字を見つけて置き換えます。a->b、g->h、r->d、e->q とします。

このような:

sed -i "s/a/b/g" file.html >NUL
sed -i "s/g/h/g" file.html >NUL
sed -i "s/r/d/g" file.html >NUL
sed -i "s/e/q/g" file.html >NUL

すべて正常に動作します。しかし、これを単一の正規表現行に結合したいと考えています。できますか?refexについてグーグルで調べて読んだ後、今のところ方法がわかりません。ありがとう!

4

3 に答える 3

5

tr はこれを行うコマンドです。tr < file.html 'agre' 'bhdq'

ただし、コマンドを一緒に実行する方法を尋ねている場合は、次のようにします。

sed -e "s/a/b/g" -e "s/g/h/g" -e "s/r/d/g" -e "s/e/q/g" file.html

または、より一般的には、コマンドが異なる場合:

sed -e "s/a/b/g" file.html | sed -e "s/g/h/g" |
    sed -e "s/r/d/g" | sed -e "s/e/q/g"
于 2013-08-26T15:10:43.787 に答える
1

これはうまくいくかもしれません(GNU sed):

sed -i 'y/agre/bhdq' file
于 2013-08-26T18:46:34.160 に答える
1

コマンドはsedファイルから読み取ることもできます。sed -f commands.sed file.html

commands.sed
---- 
s/a/b/g
s/g/h/g
s/r/d/g
s/e/q/g
于 2013-11-20T13:10:04.170 に答える