The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
regex för att ta bort flera tomma rader i en fil? Fedora Shell-programmering och Skript 6 10-11-2007 05:36
använda sed-kommando för att radera en sträng som spänner flera rader radha.kalivar Shell-programmering och Skript 9 07-25-2007 11:26
Behöver du ta bort flera rader i en fil. kangdom Shell-programmering och Skript 6 10-16-2006 12:02
ta bort flera tomma rader whatisthis Shell-programmering och Skript 3 11-09-2005 05:42
Ta bort flera rader w / sed bookoo Shell-programmering och Skript 2 07-25-2003 11:03

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 04-27-2007
Selkirk selkirk is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 4
Question Ta bort flera rader containting en variabel string använder SED.

God morgon,
Novis scripter i Unix här, och jag har stött på och sed uppgift jag inte riktigt avsluta mitt huvud runt. Jag drar mitt hår ut fort nog som det är och trodde att jag skulle gå till kunskapsbank.

Jag har en sorterad fil som jag försöker att klippa ned genom att radera alla rader vars första tecknen är en upprepning av en tidigare linje.
dvs

1 ABCD
1 CDEF
1 EFGH
2 ACDE
2 GLKGI
2 KLIGH
.
.
.
10 ABSD
10 OIHIHN
10 OHOIN
.
.
.
XX LIHIN
XX OIHNM
XX OHINK

Jag måste ta bort alla rader för vilken linjen sidhuvudet (tre första tecknen är en upprepning.) Så för de tidigare linjerna skulle hålla den första raden som börjar med "1" i första raden som börjar med "2" etc. Så Slutresultatet av det skulle

1 ABCD
2 ACDE
.
10 ABSD
.
XX LIHIN

De tre första tecknen är alltid hela tal, inte mer än 2 siffror, följt av ett mellanslag, men det maximala antal förändringar (det kan någonstans mellan 11 och 40)

Jag antar att det andra alternativet skulle vara att skriva ut den första raden som innehåller "1", den första raden som innehåller "2" osv och släppa dem i en ny fil.
Jag är mer bekant med SED, Men med AWK eller något annat skulle vara bra också.

Tack på förhand!
  #2 (permalänk)  
Old 04-27-2007
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.800

Kod:
awk ' !arr[$1]++' oldfile > newfile

Detta finner den första förekomsten av det första fältet och skriver linjen. Förutsatt jag fick vad du vill.
  #3 (permalänk)  
Old 04-27-2007
Selkirk selkirk is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 4
Worked like a dream!
Det är mycket uppskattat!
Closed Thread

Komihåglista

Taggar
awk, awk trim, trim, trim awk

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 11:43.


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