The UNIX and Linux Forums  


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
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

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 10-12-2008
IMAS imas is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2007
Interventi: 15
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 -
  #2 (permalink)  
Old 10-12-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2007
Messaggi: 4.322
Citazione:
Originalmente inviato da IMAS View Post
Si prega di non chiudere questo thread se non si conosce la risposta.
Si tratta di un lavoro a domicilio domanda?
Supponendo che non lo è, ciò che è il vero problema del mondo la tua domanda?

Saluti
  #3 (permalink)  
Old 10-13-2008
IMAS imas is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2007
Interventi: 15
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 -
  #4 (permalink)  
Old 10-13-2008
summer_cherry summer_cherry is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: giugno 2007
Ubicazione: Pechino Cina
Messaggi: 1.088
awk:

Codice:
nawk 'BEGIN{FS="|"}
{
if(NR==FNR)
	a[$3]=0
else
{
	a[$3]++
	if(a[$3]>=2)
		print "#"$0
	else
		print $0
}
}' 1.txt 2.txt
  #5 (permalink)  
Old 10-13-2008
IMAS imas is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2007
Interventi: 15
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 -
Closed Thread

Segnalibri

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 è 04:09 PM.


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