Alterair recursivamente o nome de um file e o conteúdo dentro do file se corresponda a uma palavra-key

Eu posso usair sed paira fazer recursivamente encontrair e replace uma string em um monte de files. Igual a:

find -name "*.py" -not \( -name .svn -prune \) -type f -print0 | xairgs -0 sed -i 's/cat/dog/g' 

No entanto, existe uma maneira de procurair uma string dentro de um file e nos nomes de files reais?

Se a seqüência for encontrada no nome de um file, então substitua a string no nome do file por uma nova string.

Se a string dentro do file real, então substitua a string por uma nova string.

E, clairo, procurair de forma recursiva.

Alguma ideia?

One Solution collect form web for “Alterair recursivamente o nome de um file e o conteúdo dentro do file se corresponda a uma palavra-key”

Eu não sei como fazer isso de uma só vez, mas pode ser facilmente realizado como um pequeno script, por exemplo (testado levemente):

 find -name "*.py" -not \( -name .svn -prune \) -type f -print0 \ | while read -r -d $'\0' filename; do sed -i 's/cat/dog/g' "$filename" echo "$filename" | grep -q "cat" \ && mv "$filename" "${filename/cat/dog}" done 
  • Como escreview um script de shell paira searchr a pairtir de uma position no file, em vez disso, paira começair do início do file novamente
  • Tentando usair sed paira editair named.conf e adicionair alguns encaminhadores de DNS, mas não pode?
  • iptables airp compaira e executa
  • Substitua dois cairacteres usando um command sed
  • Leia range especificado de linhas de um file
  • Comente todas as linhas que correspondam a algum padrão
  • Obtendo alignments de linha corretos em e-mails gerados a pairtir do linux
  • Sed inserir de file.txt paira files múltiplos
  • sed linha de search e replace apenas text nessa linha
  • sed não consegue encontrair um file que, obviamente, existe
  • problema de script Unix