![]() |
|
|
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 |
| Come eliminare una riga vuota prima dal file | aoussenko | Shell scripting e di programmazione | 4 | 06-20-2008 01:05 PM |
| eliminare spazio vuoto nella linea di inizio della | karthikn7974 | Shell scripting e di programmazione | 4 | 05-07-2008 05:40 AM |
| come eliminare il testo dalla linea di partenza fino a pattern1 prima linea pattern2? | repudi8or | Shell scripting e di programmazione | 5 | 04-15-2008 10:25 PM |
| come eliminare linea con le corrispondenti linee di testo e subito dopo | orahi001 | UNIX for Dummies Domande & Risposte | 6 | 01-15-2008 12:34 AM |
| regex per eliminare più righe vuote in un file? | fedora | Shell scripting e di programmazione | 6 | 10-11-2007 05:36 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
sed: eliminare regex linea e riga successiva se vuota
Salve, Voglio scrivere un sed script che da Codice:
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 Codice:
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 Vorrei immaginare qualcosa di simile: "se una riga contenente": "è seguita da una riga vuota cancellare entrambe le linee (la linea con": "e la riga vuota)" vale a dire qualcosa di simile, in generale, se una riga contenente regex1 è seguita (subito dopo) da una linea contenente regex2 eliminare entrambe le linee. se sarebbe su una sola riga vorrei fare: sed '/ regex1 .* regex2 / d' -> come si sviluppa questo comando su 2 righe? Considerare cappello e nel mio caso regex2 è una riga vuota (ad esempio ^ $). grazie |
|
||||
|
Scusa, ho inviato la mia prima risposta, anche sulla base di una sommaria lettura della tua domanda. Codice:
sed '/:$/!b;N;/:\n$/d' input.txt Ecco una breve spiegazione: /:$/! b - se non una riga termina con i due punti, a soli saltare alla fine dello script e la stampa. N - si tratta di una linea che termina con i due punti; recuperare la riga successiva e colla insieme. /: \ n $ / d - se il combinato due linee corrispondono a questo modello, eliminare altro, la stampa \ N cosa funziona in modo diverso in diverse versioni di sed, Ma se non funziona, provate con un letterale newline, con o senza un backslash. Ultimo a cura di epoca; al 09/18/2008 06:56 AM.. Motivo: Nota su \ n in diverse versioni di sed |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|