19

次を含む「test.txt」ファイルがあります

+foo+
+bar+

私がやりたいのは、それらを次のように置き換えることです:

'foo'
'bar'

しかし、なぜこのコードが機能しないのでしょうか?

sed  's/\+/\'/' test.txt

それを行う正しい方法は何ですか?

4

4 に答える 4

27

"代わりに使用してください。そして、フラグを追加gしてすべてを置き換えます。

sed  "s/\+/\'/g" test.txt
于 2013-08-08T06:40:41.660 に答える
3

次を使用して、ファイル内のすべてのインスタンスを+withに置き換えることもできます。'tr

tr '+' "'" < inputfile
于 2013-08-08T06:47:43.250 に答える
3

+-rは、sed の switchのない特殊文字ではありません。エスケープせずに代替コマンドを実行できます。

echo '+foo+' | sed "s/+/'/g"

# output: 'foo'

変更したファイルを保存する場合は、次を使用します。

sed -i.bak "s/+/'/g" test.txt
于 2013-08-08T06:44:00.550 に答える