![]() |
|
|
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 |
| hoe u een eerste lege regel uit het bestand | aoussenko | Programmeren en Shell Scripting | 4 | 06-20-2008 01:05 PM |
| verwijdert lege ruimte in begin van de lijn | karthikn7974 | Programmeren en Shell Scripting | 4 | 05-07-2008 05:40 |
| hoe te verwijderen tekst uit die begint pattern1 tot overeenstemming vóór pattern2? | repudi8or | Programmeren en Shell Scripting | 5 | 04-15-2008 10:25 PM |
| hoe te verwijderen lijn met bijpassende tekst en lijntekeningen onmiddellijk na | orahi001 | UNIX voor Dummies Questions & Answers | 6 | 01-15-2008 12:34 AM |
| regex te verwijderen meerdere lege regels in een bestand? | fedora | Programmeren en Shell Scripting | 6 | 10-11-2007 05:36 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
sed: verwijder regex lijn en volgende regel indien leeg
Hoi, Ik wil om een sed script die vanaf Code:
batiato: batiato/giubbe: pip_b.2.txt pip_b.3.txt pip_b.3mmm.txt bennato: bennato/peterpan: 123.txt consoli: pip_a.12.txt daniele: daniele/anna: abc.txt procuces Code:
batiato/giubbe: pip_b.2.txt pip_b.3.txt pip_b.3mmm.txt bennato/peterpan: 123.txt consoli: pip_a.12.txt daniele/anna: abc.txt Ik zou voorstellen dat zoiets als: "Als een regel met": "wordt gevolgd door een lege regel te verwijderen beide lijnen (de lijn met": "en de lege regel)" dwz iets als in het algemeen Als een regel met regex1 wordt gevolgd (direct na) door een regel met regex2 verwijderen beide lijnen. indien het zou worden op een regel ik zou doen: sed '/ regex1 .* regex2 / d' -> hoe verspreiden deze opdracht op 2 lijnen? En hoed overwegen in mijn geval regex2 is een lege lijn (dat wil zeggen ^ $). bedankt |
|
||||
|
Sorry, gepost ik mijn eerste antwoord gebaseerd op een te summier lezen van uw vraag. Code:
sed '/:$/!b;N;/:\n$/d' input.txt Hier volgt een korte uitleg: /:$/! b - zo niet een lijn eindigt met een dubbele punt, maar naar het einde van het script en print. N - dit is een lijn eindigt met een dubbele punt, halen de volgende regel en lijm ze samen. /: \ n $ / d - indien de gecombineerde twee lijnen komen overeen met dit patroon, verwijderen anders print De \ n ding werkt anders in de verschillende versies van sed, Maar als het niet werkt, probeer met een letterlijke newline, met of zonder een backslash. Laatst gewijzigd door tijdperk; op 09.18.2008 06:56.. Reden: Opmerking over de \ n in verschillende versies van sed |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|