Linux - 替换字符串

时间:2013-07-29 10:53:15

标签: linux shell sed grep

我需要为该字符串/行的每个实例替换一个字符串/行。 在以下行中:

set output "/DS/tmp/2.gnuplot.ps" 

我需要它:

set output "./gnuplot.ps" 

我想用:

grep -rl 'stringONE' ./ | xargs sed -i 's/stringONE/stringTWO/g'

但是当我尝试使用它时,它与字符串中的/有冲突......

grep -rl '/DS/tmp/2.gnuplot.ps' ./ | xargs sed -i 's//DS/tmp/2.gnuplot.ps/./gnuplot.ps/g'

任何帮助将不胜感激!!!

1 个答案:

答案 0 :(得分:1)

如果要替换的字符串包含斜杠(/),那么你可以用其他东西分隔sed的s命令的参数,在这种情况下我使用了逗号:

grep -rl '/DS/tmp/2.gnuplot.ps' ./|xargs sed -i 's,/DS/tmp/2.gnuplot.ps,./gnuplot.ps,g'