The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
regex til at slette flere tomme linjer i en fil? fedora Shell Programmering og Scripting 6 10-11-2007 05:36 PM
ved hjælp af sed-kommando til at slette en streng der spænder over flere linjer radha.kalivar Shell Programmering og Scripting 9 07-25-2007 11:26 AM
Behovet for at slette flere linier i en fil. kangdom Shell Programmering og Scripting 6 10-16-2006 12:02 PM
slette flere tomme linjer whatisthis Shell Programmering og Scripting 3 11-09-2005 05:42 PM
Slet flere linjer w / sed bookoo Shell Programmering og Scripting 2 07-25-2003 11:03 AM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 04-27-2007
Selkirk selkirk is offline
Registreret Bruger
  
 

Join Date: Apr 2007
Stillinger: 4
Question Slet flere linjer containting en variabel strengen bruge sed.

Godmorgen,
Novice scripter i UNIX her, og jeg har kørt ind, og sed opgave, jeg kan ikke helt ombrydes mit hoved rundt. Jeg trækker mit hår ud hurtigt nok, som det er, og troede, at jeg ville gå til den viden banken.

Jeg har en sorteret fil, som jeg prøver at skære ned ved at slette alle linje, hvis første par tegn er en gentagelse af en tidligere 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

Jeg har brug for at slette en linje, som linje header (tre første tegn er en gentagelse.) Så for det foregående linjer det ville holde den første linje, der begynder med "1" i første linje, der begynder med "2" osv. Så Slutresultatet af den ville være

1 ABCD
2 ACDE
.
10 ABSD
.
XX LIHIN

De tre første tegn er altid hele tal, ikke mere end 2 cifre, og efterfulgt af et mellemrum, men det maksimale antal ændringer (det kunne et sted mellem 11 og 40)

Jeg formoder den anden mulighed vil være at udskrive den første linje, der indeholder "1", den første linje, der indeholder "2" osv. og slippe dem i en ny fil.
Jeg er mere fortrolig med SED, Men ved hjælp AWK eller noget andet ville være fint.

Thanks in advance!
  #2 (permalink)  
Old 04-27-2007
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Beliggenhed: NM
Indlæg: 5.800

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

Dette finder den første forekomst af det første felt og tryk på linjen. Hvis man antager, jeg fik, hvad du ønsker.
  #3 (permalink)  
Old 04-27-2007
Selkirk selkirk is offline
Registreret Bruger
  
 

Join Date: Apr 2007
Stillinger: 4
Arbejdede som en drøm!
Det er meget værdsat!
Closed Thread

Bogmærker

Tags
awk, awk trim, trim, trim awk

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 11:39 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0