正在使用
!/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'