The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 01-25-2008
dbsurf dbsurf is offline
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 23
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.
  #2 (permalink)  
Old 01-25-2008
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Bli Date: Feb 2004
Beliggenhet: NM
Innlegg: 5805
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 ']'
  #3 (permalink)  
Old 01-25-2008
dbsurf dbsurf is offline
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 23
Hi sine gi feilmelding med bruk ovenfor koden
syntaksfeil på linje 7: ']' uventet
  #4 (permalink)  
Old 01-25-2008
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131
Jeg har redigert den opprinnelige innlegg av Jim.
  #5 (permalink)  
Old 01-25-2008
dbsurf dbsurf is offline
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 23
Hei

Er det fungerer?

Er det mulig å erstatte nedenfor sed Syntaksen tillegg til ovenstående xargs perl
scenario
sed -e: a-e'/;$/! N; s / \ n / /; ta '-e' s /;$//' fil
  #6 (permalink)  
Old 01-25-2008
KevinADC KevinADC is offline Forum Advisor  
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 731
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.
Closed Thread

Hugseliste

Tags
linux

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:00.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0