继我之前的问题之后:
我得到以下命令,该命令仅用基本名称替换这些文件中的任何文件名:
grep -o -h -E '[A-Za-z0-9:./_-]+\.(png|jpg|gif|tif|css)' |\
sed "s:[a-zA-z0-9]*/::" `find . -name '*.css' -or -name '*.js'`
如何将此命令的输出保存回每个处理的文件的源文件中?
答案1
对一个老问题的迟到回答,但我认为这是OP正在寻找的答案:
SEDCMD="/[A-Za-z0-9:./_-]+\.(png|jpg|gif|tif|css)/ s:[a-zA-z0-9]*/::"
find . -name '*.css' -or -name '*.js' -exec sed -i "$SEDCMD" '{}' ';'
答案2
尝试循环,例如:
find . -name '*.css' -or -name '*.js' | while read filename; do
: $filename is the original file name
done