![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
| Vergelijk tussen twee bestanden | Quijote | Programmeren en Shell Scripting | 4 | 01-06-2009 03:00 PM |
| Hoe te vergelijken 2 bestanden. | ashoka123 | Programmeren en Shell Scripting | 6 | 10-21-2008 03:38 |
| Hoe te vergelijken met bestanden | arkhei | UNIX voor Dummies Questions & Answers | 1 | 09-20-2008 05:45 |
| vergelijken van bestanden | danabo | Programmeren en Shell Scripting | 3 | 05-19-2008 01:09 PM |
| vergelijken van bestanden | ingunix | UNIX voor Dummies Questions & Answers | 3 | 05-24-2001 12:44 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Vergelijk twee bestanden met behulp van awk
Hoi. Ik ben nieuw in awk en hebben gezocht naar een oplossing voor mijn probleem, maar nog niet gevonden het juiste antwoord nog niet. Ik heb twee bestanden die er zo uitzien:
bestand1 Verwijderen, 3105551234 Verwijderen, 3105551236 Verwijderen, 5625559876 Verwijderen, 5625556789 Verwijderen, 5625553456 Verwijderen, 5625551234 Verwijderen, 5625556956 Verwijderen, 5625556643 Verwijderen, 6265552486 Verwijderen, 6265559365 Toevoegen, 7755559833 Toevoegen, 9515550087 bestand2 93,170334,0, -1, -1,, AAA,, 5625556643,6465550987,,, -1,, 581,93, -1 94,170335,0, -1, -1,, AAA,, 7145550167,6465550987,,, -1,, 581,93, -1 107,170239,0, -1, -1,, AAA,, 6265559999,6465550987,,, -1,, 581,93, -1 109,170240,0, -1, -1,, AAA,, 5205558723,6465550987,,, -1,, 581,93, -1 110,170241,0, -1, -1,, AAA,, 3105551236,6465550987,,, -1,, 581,93, -1 111,170348,0, -1, -1,, AAA,, 6195550178,6465550987,,, -1,, 581,93, -1 114,170256,0, -1, -1,, AAA,, 5625559876,6465550987,,, -1,, 581,93, -1 118,170336,0, -1, -1,, AAA,, 3105551234,6465550987,,, -1,, 581,93, -1 119,170337,0, -1, -1,, AAA,, 5125559812,6465550987,,, -1,, 581,93, -1 120,170338,0, -1, -1,, AAA,, 5125559083,6465550987,,, -1,, 581,93, -1 121,101,1, -1, -1,, AAA,,, 2135559126,,, -1,, 0,85, -1 122,170339,0, -1, -1,, AAA,, 5625559067,6465550987,,, -1,, 581,93, -1 125,999996,1, -1, -1,, AAA,,, 6265559365,,, -1,, 0,2561, -1 127,170340,0, -1, -1,, AAA,, 5625551234,6465550987,,, -1,, 581,93, -1 128,170341,0, -1, -1,, AAA,, 5625559148,6465550987,,, -1,, 581,93, -1 129,170342,0, -1, -1,, AAA,, 5625556789,6465550987,,, -1,, 581,93, -1 130,170343,0, -1, -1,, AAA,, 5625559210,6465550987,,, -1,, 581,93, -1 133,100,1, -1, -1,, AAA,,, 6265552486,,, -1,, 0,85, -1 134,170344,0, -1, -1,, AAA,, 5625553456,6465550987,,, -1,, 581,93, -1 135,170345,0, -1, -1,, AAA,, 7605559809,6465550987,,, -1,, 581,93, -1 137,170257,0, -1, -1,, AAA,, 5625556956,6465550987,,, -1,, 581,93, -1 Ik wil graag kijken naar bestand1 en een item dat is "Verwijderen" in $ 1, op zoek naar 2 dollar (vanaf bestand1) in file2. Maak vervolgens een derde bestand, bestand3, met "D," $ 1 van file2. Dus, zou de output met de bovenstaande voorbeelden als volgt uitzien: bestand3 D, 93 D, 110 D, 114 D, 118 D, 125 D, 127 D, 129 D, 133 D, 134 D, 137 Ik hoop dat ik het maken van betekenis. Any help would be appreciated. Bedankt. |
|
||||
|
Niet te kibbelen - maar u bent niet duidelijk. Uw voorbeeld niet overeenkomt met wat je zei.
nemen 114,170256,0, -1, -1,, AAA,, 5625559876,6465550987,,, -1,, 581,93, -1 en Verwijderen, 5625559876 Dit betekent 'niet afgedrukt' de 114 ,...... lijn. Uw uitgang D, 114 heeft de 114 lijn in. Diverse andere lijnen zijn als deze. Bedoelt u het omgekeerde van wat je zei? |
|
||||
|
Sorry about that. bestand1 is een lijst van nummers die moeten worden verwijderd of toegevoegd. file2 is een lijst van de huidige nummers en de bijbehorende informatie. Ik wil bestand3 worden alleen de "D", samen met de eerste kolom van file2 geassocieerd met het aantal gemarkeerd voor verwijdering in file1.
Ik probeerde het script Franklin gepost, maar ik kreeg "syntax error near line 2". Ik vergat te vermelden ik gebruik Solaris 8 als dat een verschil maakt. Bedankt. |
|
||||
|
Citaat:
Code:
awk -F, 'NR==FNR && /^D/ {a[$2]++;next}
$9 in a || $10 in a {print "D," $1}' file1 file2
Code:
awk -F, Code:
NR==FNR && /^D/ Code:
{a[$2]++;next}
Code:
$9 in a || $10 in a {print "D," $1}'
Groeten |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|