![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Ta bort blanksteg från första fältet och skriva hela innehållet i andra textfil | carriehoff | Shell-programmering och Skript | 3 | 11-11-2008 02:45 |
| Jämför & ersätta innehållet i en fil | kaustubh137 | Shell-programmering och Skript | 2 | 05-27-2008 07:56 |
| jämföra array innehåll med fil | orahi001 | UNIX for Dummies Frågor & Svar | 0 | 03-25-2008 05:44 |
| Fråga: behöver bara ta bort innehållet i filen utan att ta bort det | namishtiwari | Shell-programmering och Skript | 3 | 02-04-2008 05:41 |
| ta bort innehållet i en fil | surjyap | Sun Solaris | 2 | 03-02-2006 04:02 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Jämför två filer och ta bort allt innehåll i en fil från en annan
Hej, Jag har två filer, då den andra filen har exakt samma innehåll i den första filen med några ytterligare uppgifter. Nu, om jag vill ta bort de matchande rader från fil2 och skriv endast de extra innehåll som den första filen inte har, kan jag använda nedan osofistikerade kommandot överväga F1 och F2 är de två filer Kod:
var=`cat f1` grep -v "$var" f2 men jag behöver en mer optimal lösning med snabb och pålitlig med mindre minne konsumtion. Jag har hittat dessa 2 rader kod, men det fungerar inte för filer som har längre period av rader: Kod:
fgrep -v -x -f f2 f1
awk 'NR==FNR {b[$0]; next} !($0 in b)' f2 f1
Senast redigerad av royalibrahim; 11-18-2008 at 12:51.. |
|
||||
|
Tack till er alla för förslagen. Men någon har någon awk, perl kod för att göra denna uppgift? Och även nedan perl kod tar bort duplicerade, icke på varandra följande rader baserat på sista fältet utan sortering. Nu, snälla säg mig, vad ska jag ändra i denna kod för att skriva ut unika raderna i en fil som bara inte se det sista fältet, utan hela linjen (hela protokollet)? Kod:
perl -ane'print unless $_{$F[-1]}++'
|