1

ピリオドが行末にない限り、入力のすべてのピリオドを感嘆符に変更する sed フィルターを作成したいと考えています。

これまでのところ、これは私が持っているものです:

sed -e 's/\./\!/g' -e 's/\!\n/\!\!\n/g' input_exp

ここで、input_exp はいくつかの文が書かれたファイルです。ただし、コマンドは機能しません。'\n' は unix/bash の正しい行末文字ではありませんか? 「\n」の前に余分な「\」が必要ですか?

ご協力いただきありがとうございます。

4

2 に答える 2

3
sed -e 's_\.$_!!_g' -e 's_\._!_g' input_exp

少し読みやすさの_代わりに使用しました。/使用することもできます

sed -e 's/\.$/!!/g' -e 's/\./!/g' input_exp

もちろん、必要に応じて。\n改行を表し、行末と同じではありません。

于 2010-11-11T09:13:06.197 に答える
2

$正規表現内の「行末」に使用します。

于 2010-11-11T08:50:05.797 に答える