2

sedを使用するときに「オンザフライ」でキャラクターを交換するにはどうすればよいですか?例 :

このコマンドを実行したい:/ bin / sed's /HOSTNAME=。*/HOSTNAME = server_domain_com / g'/ etc / sysconfig / network

これの代わりに:/ bin / sed's /HOSTNAME=。*/HOSTNAME = server.domain.com / g'/ etc / sysconfig / network

文字列"server.domain.com"は環境変数に含まれています。/etc/sysconfig/networkの適切な行を置き換える前に、ドットをアンダースコアに置き換えたいと思います。

ありがとうございました!

4

2 に答える 2

7
HOSTNAME=$(echo $HOSTNAME | sed s/from/to/g)
于 2012-07-02T16:34:01.237 に答える
2

これはbash置換でも実行できます。

/bin/sed -i "s/HOSTNAME=.*/HOSTNAME=${HOSTNAME//./_}/g" /etc/sysconfig/network

は、//すべてのオカレンスを変更するように指示します(sedのgなど)。-i印刷するだけでなく、実際にファイルを変更するためのフラグを忘れないでください。

于 2012-07-02T16:41:51.673 に答える