Modifica Bulk ricorsivo in Linux
Domanda
Sto cercando di modificare alcune linee in più file (sparsi in sottocartelle) senza dover modificare ogni file uno per uno. Mi è stato dato da Chas. il seguente
perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' *
e ha funzionato come un fascino, ma chiedevo se questo comando o simile può essere fatto in modo ricorsivo in un solo colpo
Soluzione
find . -type f -exec perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' '{}' '+'
In questo modo applicarlo a tutti i file nella directory corrente e tutte le sottodirectory. Essa non seguirà i collegamenti simbolici. Si potrebbe desiderare di restringere la portata del ritrovamento con una direttiva -name pure.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow