我有以下bash
腳本重複發現每個圖像。它需要重複遍歷所有文件,並替換該文件中所有圖像的所有匹配項。Sed給出:sed:無法讀取:沒有這樣的文件或目錄
for image in app/www/images-theme-dark/*.png
do
echo "installing icon" $image
# extract filename from iconpath
iconfile=$(basename $image)
iconPath="images/"$(basename $image)
# replace paths in all files containing icon paths
find app/www -type f \(-name "*.html" -or -name "*.css" -or -name "*.js" \
-or -name "*.appcache" \) \
-exec sed -i '' -e 's|$iconPath|images-theme-dark/$iconfile|g' "{}" \;
done
然而,當我運行該腳本sed
給出:
sed: can't read : No such file or directory
在計算器上我發現sed: can't read : No such file or directory但我已經有引號{}
當我呼應sed
命令並在命令行手動執行它沒有錯誤。
我使用Raspbian的GNU/Linux 8.0(傑西)GNU的sed v4.2.2
是否有人看到這可能是錯在這裏?
btw:請參閱:[bash中單引號和雙引號之間的區別](http://stackoverflow.com/q/6697753/3776858) – Cyrus
'sed -i'之後是什麼''''? – melpomene
@melpomene它阻止sed創建備份文件並直接替換文件 –