![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Rask måte å finne og erstatte, hjelp | jkl_jkl | Shell programmering og Skripting | 1 | 03-06-2008 07:41 |
| Perl: Søk etter streng på linje deretter søke og erstatte tekst | Crypto | Shell programmering og Skripting | 4 | 01-04-2008 10:24 |
| Hva er det raskt å slette disse filene? | tonyvirk | UNIX for Dummies Spørsmål og svar | 4 | 01-01-2008 08:02 |
| Trenger du å søke og erstatte i flere filer i katalogen hierarki | umen | Shell programmering og Skripting | 3 | 12-24-2007 04:56 |
| Søk og erstatt flere linjer tekst i filer | Marz | Shell programmering og Skripting | 10 | 10-10-2005 09:05 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
raskt søk og erstatt i alle filer
Hei
Jeg trenger å finne en streng i alle filer og erstatte tht streng med mellomrom og må omdirigere alle filene i samme katalog igjen. nå kan jeg bruke find. /-name "*. dmp" | xargs perl -pi-e 's / \ \ n / / g' | sed 's /.$// g' men det er ikke redirrecting riktig. det tar for lang tid for denne operasjonen. Er det noen måte å søke og erstatte veldig fort i alle tusen filer raskt uten looping. |
|
||||
|
Dette fjerner \ N, erstatter den med "" og deretter koteletter av siste tegn på hver linje og setter inn en plass der. Vet du om dos2unix (eller dos2ux)? Code:
find ./ -name "*.dmp" | xargs perl -pi -e 's/\\N/ /g; s/.$/ /g' Hvis du ønsker å kjøre raskere prøve bakgrunnen prosesser: Code:
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
Dette går ti prosessen samtidig i bakgrunnen. Og deretter vente på ferdigstillelse. Koden du proivided erstatter ikke tegn med mellomrom Sist endret av vgersh99; 01-25-2008 på 02:43.. Årsak: mangler ']' |
|
||||
|
Virkelig, det er latterlig. Det er ikke mulig å søke og erstatte noe i tusenvis av filer raskt. Du kan finne noen måter å raskere enn andre, men ingenting kommer til å være en magisk kule. Jeg foreslår at du prøver perls inplace editor, kan det være raskere enn sed Selv om jeg ikke vet.
|
![]() |
| Hugseliste |
| Tags |
| linux |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|