![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
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 |
| Elimina riga nel file di testo | Berserk | UNIX for Dummies Domande & Risposte | 6 | 12-16-2008 03:44 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 |
| Elimina prima linea da qualsiasi file di testo? | aungomarin | Shell scripting e di programmazione | 5 | 05-16-2006 09:42 PM |
| eliminare una riga in base al primo carattere della linea | borncrazy | UNIX for Dummies Domande & Risposte | 2 | 12-06-2005 03:27 PM |
| cancellare l'ultima riga da file di testo | hcclnoodles | Shell scripting e di programmazione | 4 | 06-25-2002 09:52 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
come eliminare il testo dalla linea di partenza fino a pattern1 prima linea pattern2?
I miei dati sono xml'ish (qui è un estratto): --
<bag name\u003d"mybag1" version\u003d"1.0"/> <contents id\u003d"coins"/> <bag name\u003d"mybag2" version\u003d"1.1"/> <contents id\u003d"clothes"/> <contents id\u003d"shoes"/> <bag name\u003d"mybag3" version\u003d"1.6"/> Voglio cancellare riga contenente mybag2 contenuti e le sue successive (numero di linee di contenuto può variare). Così vorrei eliminare dal modello fino a mybag2 (ma non compresi) il prossimo "sacchetto nome" tag e dar luogo a: -- <bag name\u003d"mybag1" version\u003d"1.0"/> <contents id\u003d"coins"/> <bag name\u003d"mybag3" version\u003d"1.6"/> Ho cercato questo a pochi modi diversi con sed e awk e non hanno ancora trovato una soluzione. Qualsiasi aiuto sarebbe apprezzato. |
|
||||
|
Questa è la mia soluzione:
--------- file: awk_tets -------------- BEGIN (bandiera \u003d 0) / ^ <sacchetto name \u003d "mybag2" / (flag \u003d 1) / ^ <sacchetto name \u003d "mybag3" / bandiera \u003d (0) (If (flag \u003d\u003d 0) (print;)) --------------------------------------- nella riga di comando: $ awk-f awk_test your_data_file> risultato Let's try it ![]() |
|
||||
|
Citazione:
|
|
||||
|
Ho provato questa soluzione: --
mi @ myserver $ nawk 'BEGIN (bandiera \u003d 0) / ^ <sacchetto name \u003d "mybag2" / (bandiera) \u003d 1 / ^ <sacchetto name \u003d "mybag3" / bandiera \u003d (0) (if (flag \u003d\u003d 0) (print;)) 'test2 <bag name\u003d"mybag1" version\u003d"1.0"/> <contents id\u003d"coins"/> <bag name\u003d"mybag3" version\u003d"1.6"/> Funziona, ma il problema è che la seconda busta nome potrebbe essere un qualsiasi valore, la sua non specificamente "mybag3", in modo che il secondo motivo deve essere il più generico "/ ^ borsa \u003d nome / Allora ho provato anche che: -- mi @ myserver $ nawk 'BEGIN (bandiera \u003d 0) / ^ <sacchetto name \u003d "mybag2" / (bandiera) \u003d 1 / ^ <sacchetto name \u003d / bandiera \u003d (0) (if (flag \u003d\u003d 0) (print; )) 'test2 <bag name\u003d"mybag1" version\u003d"1.0"/> <contents id\u003d"coins"/> <bag name\u003d"mybag2" version\u003d"1.1"/> <contents id\u003d"clothes"/> <contents id\u003d"shoes"/> <bag name\u003d"mybag3" version\u003d"1.6"/> essa non è riuscita perché la bandiera è stata retta reset dopo che è stato impostato come il modello più generico anche trovato il mybag2 linea. Poi ho acceso il modello ordine e BINGO! mi @ myserver $ nawk 'BEGIN (bandiera \u003d 0) / ^ <sacchetto name \u003d / \u003d 0 (bandiera) / ^ <sacchetto name \u003d "mybag2" / (flag \u003d 1) (if (flag \u003d\u003d 0) (print; )) 'test2 <sacchetto name \u003d "mybag1" version \u003d "1.0" /> <contents id\u003d"coins"/> <bag name\u003d"mybag3" version\u003d"1.6"/> Grazie molto per me leader nella giusta direzione kholostoi |
![]() |
| Segnalibri |
| Tag |
| sed eliminare linea, solaris |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|