sedreplace斜线

正在使用

!/bin/bash for fl in *.txt; do mv $fl $fl.old sed 's/files.php?file=/file/g' $fl.old > $fl rm -f $fl.old done 

我需要输出replace文件/不只是文件,无法弄清楚

使用:

 sed 's/files.php?file=/file\//g;' $fl.old > $fl 

注意\用于转义/replace后的file

您可以使用#| 而不是/使模式中的斜杠变得更容易:

 !/bin/bash for fl in *.txt; do mv $fl $fl.old sed 's#files.php?file=#file/#g' $fl.old > $fl rm -f $fl.old done 

这使你不必逃避你想匹配的所有斜杠或用作替代品\/

另外,要明确:

/是一个斜线

\是一个反斜杠

您可以使用反斜杠的转义:

 sed 's/files.php?file=/file\//g' $fl.old > $fl 

这将产生所需的输出。

你不要使用/使用sed,你可以使用其他的东西像#|

 sed 's#files.php?file=#file/#g' 

要么

 sed 's|files.php?file=|file/|g'