UtilizzandoCome sostituire una stringa in un file esistente in Perl, mentre non tocca i file non modificati
perl -pi -e 's/pattern/replacement/g' $(find src -type f)
è bello, tranne che per una cosa: tutti i file vengono sovrascritti, anche quelli senza alcuna partita. Questo non va bene dato che spesso mantengo molti di loro aperti in Emacs o Eclipse che poi mi fanno domande noiose. C'è un modo semplice per evitare di toccare file non modificati (Qualcosa come l'uso di grep in find è troppo lavoro, specialmente per motivi complessi).
Puoi spiegare la tua nota su 'xargs'? – maaartinus
@maaartinus, C'è un limite alla dimensione delle righe di comando. È molto più grande di un tempo, ma non è così difficile da raggiungere. 'xargs' risolve questo problema avviando il programma più di una volta se necessario. Ad esempio, eseguirà 'foo file1 file2 ... file499' e' foo file500 file501 ... file999' invece eseguendo 'foo file1 file2 ... file999' se quest'ultimo non è possibile. – ikegami