- find tests/ -mindepth 1|while read a; do sed -i 's;incolumepy;incolume.py;g' $a; done
ls *.cfg | xargs sed -i"23i#####################################################"
Para um
listanome.txt
conforme abaixo...$ cat listanome.txt ze jao juca
...o seguinte
sed
transforma em um script de exclusão para cada nome da lista:$ sed 's/^/\//; s/$/\/d/' listanome.txt /ze/d /jao/d /juca/d
Assim, passe tal comando
sed
para a flag-f
de um novosed
, que executará tal script em todos os arquivos a serem afetados, supostamente contidos no diretóriocaminho
:$ sed --in-place=.bak -f <(sed 's/^/\//; s/$/\/d/' listanome.txt) /caminho/*
Isso deletará todas as linhas de todos os arquivos do diretório
caminho
que contêm os nomes delistanome.txt
, efetuando cópias de segurança com a extensão ".bak" para cada arquivo alterado.Caso seu requisito mude, altere o primeiro
sed
de acordo com o que deseja, por exemplo:Para deletar todas as linhas idênticas às do índice:
$ sed 's/^/\/^/; s/$/$\/d/' listanome.txt /^ze$/d /^jao$/d /^juca$/d
Para substituir o conteúdo da linha pela string "REMOVER":
$ sed 's/^/\/^\.\*/; s/$/\.\*$\/REMOVER\/g/' listanome.txt /^.*ze.*$/REMOVER/g /^.*jao.*$/REMOVER/g /^.*juca.*$/REMOVER/g
Comentários