![]() |
|
|
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 |
| modificare un modello particolare a partire dalla seconda linea di ricerca del modello | IMAS | UNIX for Dummies Domande & Risposte | 1 | 10-12-2008 02:19 PM |
| modificare un modello particolare a partire dalla seconda linea di ricerca del modello | IMAS | UNIX for Dummies Domande & Risposte | 2 | 10-12-2008 12:30 PM |
| Come è possibile eliminare i record in un file di corrispondenza un modello? | mode09 | UNIX for Dummies Domande & Risposte | 2 | 07-15-2008 02:53 PM |
| escludere le colonne con un corrispondente modello di linea | greptastic | UNIX for Dummies Domande & Risposte | 5 | 06-30-2008 04:32 AM |
| Pattern Multile Cerca in una stessa linea e cancellare | sasree76 | Shell scripting e di programmazione | 2 | 04-16-2008 03:12 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Commenta / eliminare un particolare modello a partire dalla seconda riga del modello corrispondente da trovare
Salve,
Ho 1.txt file con le seguenti voci, come indicato: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 ** ** ** Nel file 2.txt ho le seguenti voci, come indicato: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Voglio prendere l'indirizzo IP da 1.txt colonna e poi cerca in 2.txt e commentare il duplicato entrata da corrispondere secondo modello. vale a dire, ho bisogno di avere il seguente output in 2.txt come mostrato: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Di seguito è riportato lo script che ho scritto, ma che tutte le osservazioni di voci duplicate: for i in `cat 1.txt | cut-d" | "-f3` fare cat 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/#/ g"> tmp.txt mv tmp.txt 2.txt fatto Posso alcuni uno guida come me di lasciare il primo duplicato entrata intatta e commento / eliminare dal secondo duplicato ingresso e così via. ![]() Si prega di non chiudere questo thread se non si conosce la risposta. Grazie IMAS - |
|
||||
|
Citazione:
Supponendo che non lo è, ciò che è il vero problema del mondo la tua domanda? Saluti |
|
||||
|
Sì vostra ipotesi è corretta, e questo è un problema del mondo reale
Cosa iam cercando di fare è commentando il duplicato Ip trovata nel file di testo ignorando la prima occorrenza di essere IP valido per mac e una valida a partire dal secondo in poi verificarsi commentando il duplicato presso l'IP di partenza della linea. 1.txt file con le seguenti voci, come indicato: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 ** ** ** 2.txt file con le seguenti voci, come indicato: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Ho bisogno di avere il seguente output in 2.txt come mostrato: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** La corretta script che ho scritto è for i in `cat 1.txt | cut-d" | "-f3` fare cat 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/# \ 1 / g"> tmp.txt mv tmp.txt 2.txt fatto Ma lo script qui sopra saranno i commenti su tutti gli eventi. Il vostro aiuto è apprezzato. Grazie IMAS - |
|
||||
|
Hi Summer_Cherry,
Milioni di grazie per avermi dato la parte di codice che a partire dal secondo commento verificarsi di corrispondenza a partire dal modello della linea. intelsol2> gatto 1.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 intelsol2> gatto 2.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 intelsol2> nawk 'BEGIN (FS \u003d"|"} ( if (NR \u003d\u003d FNR) uno [$ 3] \u003d 0 altro ( uno [$ 3] + + se (a [$ 3]> \u003d 2) print "#" $ 0 altro print $ 0 ) ) '1.txt 2.txt> 3.txt intelsol2> gatto 3.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 intelsol2> Inoltre, grazie molto per unix forum ragazzi "si ppl rock!" Cordiali saluti, i stava cercando di ricerca di questo codice dal momento che tutti i fine settimana e ha vissuto sed manuale "http://www.grymoire.com/Unix/Sed. html "sub argomento (/ 1, / 2, ecc Specificando che occorrenza), tuttavia, è stato sfortunato nel cercare tutti i metodi di prova ed errore. Estate potrebbe anche spiegare il codice che mi hanno scritto in modo che io posso capire che in un modo migliore. Ancora una volta grazie molto e si può chiudere questo thread. Grazie IMAS - |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|