come eliminare il testo dalla linea di partenza fino a pattern1 prima linea pattern2? - Il Forum di UNIX e Linux
The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



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

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-13-2008
repudi8or repudi8or is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 11
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.
  #2 (permalink)  
Old 04-13-2008
kholostoi kholostoi is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2008
Interventi: 6
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
  #3 (permalink)  
Old 04-13-2008
robsonde robsonde is offline
Utente Registrato
  
 

Iscriviti Data: dicembre 2007
Interventi: 162
Citazione:
Originalmente inviato da kholostoi View Post
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
questo è ciò che avevo in mente troppo, problema è che essa non può handel nidificate ceses troppo bene .....
  #4 (permalink)  
Old 04-13-2008
repudi8or repudi8or is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 11
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
  #5 (permalink)  
Old 04-14-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Interventi: 2.859
Oppure:

Codice:
awk '/^<bag name=/{f=0}$0~v{f=1}!f' v="mybag2" file
Usa nawk / o usr/xpg4/bin/awk su Solaris.
  #6 (permalink)  
Old 04-15-2008
repudi8or repudi8or is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 11
molto più elegante, grazie radoulov

Io uso che
Closed Thread

Segnalibri

Tag
sed eliminare linea, solaris

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 06:22 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0