![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Snelle manier van zoeken en vervangen, help | jkl_jkl | Programmeren en Shell Scripting | 1 | 03-06-2008 07:41 |
| Perl: Zoek een string op de lijn vervolgens zoek en vervang tekst | Crypto | Programmeren en Shell Scripting | 4 | 01-04-2008 10:24 |
| Wat is de snelste manier om deze bestanden te verwijderen? | tonyvirk | UNIX voor Dummies Questions & Answers | 4 | 01-01-2008 08:02 PM |
| Hoeft te zoeken en vervangen in meerdere bestanden in de directory hiërarchie | umen | Programmeren en Shell Scripting | 3 | 12-24-2007 04:56 |
| Zoeken en vervangen multi-line tekst in bestanden | Marz | Programmeren en Shell Scripting | 10 | 10-10-2005 09:05 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
snel zoeken en vervangen in alle bestanden
Hoi
Ik moet naar een string in alle bestanden en vervangt THT string met lege ruimte en de noodzaak om te buigen alle bestanden in dezelfde map opnieuw. Nu ben ik met behulp van vinden. /-name "*. dmp" | xargs perl -pi-e 's / \ \ n / / g' | sed 's /.$// g' maar nu zijn niet redirrecting goed. haar rekening te veel tijd voor deze operatie. Is er een manier te zoeken en te vervangen zeer snel in alle duizend bestanden snel en zonder herhaling. |
|
||||
|
Dit verwijdert \ N, te vervangen door "" en vervolgens chops off het laatste teken van elke zin en voegt een spatie er. Weet je over dos2unix (of dos2ux)? Code:
find ./ -name "*.dmp" | xargs perl -pi -e 's/\\N/ /g; s/.$/ /g' Als je wilt lopen sneller proberen het gebruik van achtergrond processen: 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
Dit druist in tien processen tegelijk in de achtergrond. En dan wacht op de voltooiing. De code die u proivided vervangt niet de tekens met een spatie Laatst gewijzigd door vgersh99; op 01.25.2008 02:43 PM.. Reden: missing ']' |
|
||||
|
Echt, de eisen zijn belachelijk. Er is geen manier om te zoeken en te vervangen alles in duizenden bestanden snel. Misschien vindt u enkele manieren om sneller dan anderen, maar niets gaat om een wondermiddel. Ik stel voor dat je probeert perls inplace editor, kan het sneller dan sed hoewel ik niet echt weten.
|
![]() |
| Bladwijzers |
| Labels |
| linux |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|