Tôi có đoạn mã bash
sau đây lặp lại cho mỗi hình ảnh được tìm thấy. Nó cần phải lặp qua tất cả các tệp html, css và js và thay thế tất cả các lần xuất hiện của một hình ảnh trong tệp đó.Sed cung cấp: sed: không thể đọc: Không có tệp hoặc thư mục nào như vậy
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
Tuy nhiên khi tôi chạy kịch bản sed
cho:
sed: can't read : No such file or directory
On StackOverflow tôi đã tìm thấy sed: can't read : No such file or directory Nhưng tôi đã có dấu ngoặc kép quanh {}
Khi Tôi xin nhắc lại lệnh sed
và và thực hiện nó trên dòng lệnh bằng tay không có lỗi.
Tôi đang sử dụng GNU v4.2.2 sed trên Raspbian GNU/Linux 8.0 (jessie)
Có ai nhìn thấy những gì có thể sai ở đây?
Btw: xem: [Sự khác biệt giữa dấu nháy đơn và kép trong bash] (http://stackoverflow.com/q/6697753/3776858) – Cyrus
'''' sau 'sed -i' là gì? – melpomene
@melpomene nó ngăn cản sed tạo tệp sao lưu và thay thế trực tiếp trong tệp thay vì –