The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
wijzigen van een bepaald patroon vanaf tweede regel van het zoekpatroon Imas UNIX voor Dummies Questions & Answers 1 10-12-2008 02:19 PM
wijzigen van een bepaald patroon vanaf tweede regel van het zoekpatroon Imas UNIX voor Dummies Questions & Answers 2 10-12-2008 12:30
Hoe kunt u records in een bestand matching een patroon? mode09 UNIX voor Dummies Questions & Answers 2 07-15-2008 02:53 PM
uitsluiten kolommen met een bijpassende lijn patroon greptastic UNIX voor Dummies Questions & Answers 5 06-30-2008 04:32
Multile Patroon Zoeken in dezelfde lijn en verwijderen sasree76 Programmeren en Shell Scripting 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-12-2008
Imas imas is offline
Geregistreerde gebruiker
  
 

Join Date: november 2007
Posts: 15
commentaar / verwijderen van een bepaald patroon vanaf tweede regel van de matching patroon

Hoi,

Ik heb bestand 1.txt met volgende vermeldingen zoals:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
**
**
**

In bestand 2.txt Ik heb de volgende vermeldingen zoals:

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

Ik wil nemen het IP-adres kolom 1.txt en zoek het in 2.txt en de opmerking van de dubbele vermelding van de tweede gematched patroon.

dat wil zeggen, ik moet de volgende output in 2.txt hebben getoond:

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

Hieronder is het script schreef ik, maar het zal reageren alle dubbele vermeldingen:

for i in `cat 1.txt | cut-d" | "-f3`
doen
cat 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/#/ g"> tmp.txt
mv tmp.txt 2.txt
gedaan

Kan iemand gids me laten zien hoe de eerste Duplicate entry ongerept en commentaar achter te laten / verwijderen van de tweede Duplicate entry en zo verder.

Gelieve niet sluiten deze draad als je niet het antwoord weten.

Bedankt
-Imas
  #2 (permalink)  
Old 10-12-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.345
Citaat:
Oorspronkelijk geplaatst door Imas View Post
Gelieve niet sluiten deze draad als je niet het antwoord weten.
Is dit een thuiswerk vraag?
Ervan uitgaande dat het niet, wat is de echte wereld probleem van uw vraag?

Groeten
  #3 (permalink)  
Old 10-13-2008
Imas imas is offline
Geregistreerde gebruiker
  
 

Join Date: november 2007
Posts: 15
Ja je veronderstelling juist is en dit is een echte wereld probleem

Wat iam proberen te doen is commentaar van de dubbele IP's gevonden in het tekstbestand negeren van het eerste voorkomen als geldig IP voor Mac en een geldig vanaf de tweede voorval verder commentaar de dubbele IP's aan de start van de lijn.

1.txt bestand met volgende vermeldingen zoals:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
**
**
**

bestand 2.txt met volgende vermeldingen zoals:

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

Ik moet de volgende output in 2.txt hebben getoond:

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

De juiste script ik heb geschreven is

for i in `cat 1.txt | cut-d" | "-f3`
doen
cat 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/# \ 1 / g"> tmp.txt
mv tmp.txt 2.txt
gedaan

Maar de bovenstaande script zal alle opmerkingen van de gebeurtenis.

Uw hulp is welkom.

Bedankt
-Imas
  #4 (permalink)  
Old 10-13-2008
summer_cherry summer_cherry is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jun 2007
Locatie: Beijing China
Berichten: 1.097
awk:


Code:
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
Geregistreerde gebruiker
  
 

Join Date: november 2007
Posts: 15
Hi Summer_Cherry,

Miljoen dank dat u mij het stukje code dat zal reageren vanaf tweede vermelding van gematched patroon van het vertrekpunt van de lijn.

intelsol2> cat 1.txt
0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
intelsol2> cat 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)
een [$ 3] \u003d 0
anders
(
een [$ 3] + +
if (a [$ 3]> \u003d 2)
print "#" $ 0
anders
print $ 0
)
) '1.txt 2.txt> 3.txt
intelsol2> cat 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>

Mede dankzij veel voor unix forum jongens "je ppl rock!!"

FYI, ik probeerde om te zoeken naar deze code, aangezien alle in het weekend en ging door sed handleiding "http://www.grymoire.com/Unix/Sed. html "sub onderwerp (/ 1, / 2, enz. specificeren welke gebeurtenis) is echter ongelukkig was om te proberen de trial and error methode.

Ook de zomer Kunt u uitleggen me de code die u hebt zo geschreven dat ik het kan begrijpen op een betere manier.

Nogmaals thanks a lot en u kunt sluiten deze draad.

Bedankt
-Imas
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 04:20.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0