使用斜杠传递 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
中包含的文件名有空格的情况。
我正在尝试传入 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
中包含的文件名有空格的情况。