Resposta tardia a uma pergunta antiga, mas acho que esta é a resposta que o OP estava procurando:
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" '{}' ';'
Seguindo a minha pergunta anterior:
Remove slashes/parent paths from filenames inside CSS and Javascript content
Cheguei ao seguinte comando que substitui qualquer nome de arquivo nesses arquivos apenas pelo nome de base:
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''
Como eu salvo a saída deste comando de volta ao arquivo de origem para cada arquivo processado?
Resposta tardia a uma pergunta antiga, mas acho que esta é a resposta que o OP estava procurando:
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" '{}' ';'
Tente um loop, como:
find . -name '*.css' -or -name '*.js' | while read filename; do
: $filename is the original file name
done
Tags grep shell regular-expression