使用斜杠传递 sed 参数(使目录成为字符串?)

passing sed argument with slash ( making a directory a string ?)

我正在尝试传入 assets/css/images 以替换多个文件中的图像。

所以我写了这个脚本

$list
$word
$neword
$i

echo "select files: "
read list
echo "input word to search for: "
read word
echo "input word to replace with: "
read neword

for i in $list
do
sed -i "s/${word}/${neword}/g" $i

完成

它适用于没有 / 的单词,我知道为什么,但我不知道如何绕过它。有人吗?

你应该这样做才能在 sed

中逃脱 /

尝试关注,

sed -i "s#${word}#${neword}#g" "$i"

sed -i "s~${word}~${neword}~g" "$i"

编辑:按照@tripleee 的建议为文件名添加引号,以避免 $i 中包含的文件名有空格的情况。