The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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

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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 11-17-2008
royalibrahim royalibrahim is offline
Registered User
  
 

Join Date: juni 2007
Inlägg: 86
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..
  #2 (permalänk)  
Old 11-17-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
Modérateur
  
 

Join Date: Dec 2007
Ort: Home av 17-Temne världen mästare Boston Celtics
Inlägg: 1311
Wink Kanske diff kommandot kommer att fungera för dig


Kod:
> cat file70
abc
def
ghi
jkl
mno
pqr
stu
vwx
yz
123
456
789
0

> cat file71
abc
def
ghi
jkl
mno
pqr
stu
vwx
yz
bash ksh
123
456
789
0
unix.com

> diff file70 file71 | grep "^>" | cut -c3-
bash ksh
unix.com

  #3 (permalänk)  
Old 11-17-2008
Christoph Spohr Christoph Spohr is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 205
Hej,

att skriva ut de olika linjerna i två filer prova:


Kod:
comm -3 file1 file2

och för ytterligare information


Kod:
man comm

Med vänlig hälsning

Chris
  #4 (permalänk)  
Old 11-18-2008
royalibrahim royalibrahim is offline
Registered User
  
 

Join Date: juni 2007
Inlägg: 86
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]}++'

Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 01:19.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0