![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Fast modo di trovare e sostituire, aiuto | jkl_jkl | Shell scripting e di programmazione | 1 | 03-06-2008 07:41 AM |
| Perl: Cerca stringa di ricerca on-line e quindi sostituire il testo | Crypto | Shell scripting e di programmazione | 4 | 01-04-2008 10:24 AM |
| Qual è il modo veloce per eliminare questi file? | tonyvirk | UNIX for Dummies Domande & Risposte | 4 | 01-01-2008 08:02 PM |
| Necessità di ricerca e sostituzione in più file nella gerarchia di directory | umen | Shell scripting e di programmazione | 3 | 12-24-2007 04:56 AM |
| Cercare e sostituire multi-linea di testo in file | marz | Shell scripting e di programmazione | 10 | 10-10-2005 09:05 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
veloce di ricerca e sostituzione di tutti i file
Salve
Ho bisogno di trovare una stringa in tutti i file e sostituire tht stringa con uno spazio vuoto e la necessità di reindirizzare tutti i file nella stessa directory di nuovo. ora sto utilizzando trovare. /-name "*. dmp" | xargs perl -pi-e 's / \ \ n / / g' | sed 's /.$// g' ma ora il suo redirrecting non correttamente. la sua assunzione troppo tempo per questa operazione. C'è un modo per cercare e sostituire molto veloce in tutte le migliaia di file in modo rapido senza loop. |
|
||||
|
Ciò elimina \ N, lo sostituisce con "" e poi chops fuori l'ultimo carattere di ogni riga e inserisce uno spazio lì. Sapete circa dos2unix (o dos2ux)? Codice:
find ./ -name "*.dmp" | xargs perl -pi -e 's/\\N/ /g; s/.$/ /g' Se si desidera provare a correre più veloce utilizzando processi in background: Codice:
cnt=0
find ./ -name "*.dmp" |\
while read file do
perl -pi -e 's/\\N/ /g; s/.$/ /g' $file &
cnt=$cnt+1
z=$(( $cnt % 10 ))
if [[ $z -eq 0 ]] ; then
wait
fi
done
wait
Questo processo viene eseguito dieci allo stesso tempo in background. E poi aspetta per il completamento. Il codice si proivided non sostituisce i caratteri con uno spazio Ultimo a cura di vgersh99; al 01/25/2008 02:43 PM.. Motivo: manca ']' |
|
||||
|
In realtà, i requisiti sono ridicoli. Non c'è modo di cercare e sostituire nulla in migliaia di file in modo rapido. Potreste trovare alcuni modi per più veloce rispetto ad altri, ma non sarà una bacchetta magica. Vi suggerisco di provare Perls inplace editor, potrebbe essere più veloce di sed anche se non so.
|
![]() |
| Segnalibri |
| Tag |
| linux |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|