The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Merge linjer i en anypager Shell Programmering og Scripting 7 05-22-2008 04:20 PM
hentes flere linjer på flere steder i en fil dala Shell Programmering og Scripting 8 03-14-2008 03:28 PM
flette 2 filer (uden at gentage enhver linjer) bluemoon1 Shell Programmering og Scripting 9 10-25-2007 11:31 PM
flette flere linjer fra flade fil hnhegde Shell Programmering og Scripting 4 12-05-2006 07:13 PM
Merge ombrudte linjer braindrain Shell Programmering og Scripting 1 07-25-2005 08:03 PM

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 08-07-2006
xb88 xb88 is offline
Registreret Bruger
  
 

Join Date: Aug 2006
Stillinger: 7
Brug sed at fusionere flere linjer

Hi all:

Jeg har en fil, hvor indholdet er som følgende:

...
Dette er en test
ONE
TO
Hello, world!
XXX YYY CCC
test igen
tre, fire
fem
seks
syv
Verden
AAA BBB QQQ
test
otte, ni
Verden
FFF EEE KKK
...

Jeg vil gerne bruge sed at fusionere alle linjer mellem en linje, der indeholder et ord 'test' og en linje, der indeholder et ord 'verden' til en linje, og ignorere andre linjer. Med andre ord, ønsker jeg et resultat som følgende:

Dette er en test et to Hello, world!
test igen tre, fire fem seks syv verden
test otte, ni verden


Enhver hjælp er værdsat. På forhånd tak for din hjælp!

Med venlig hilsen
Susan
  #2 (permalink)  
Old 08-08-2006
System Shock's Avatar
System Shock System Shock is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: May 2006
Beliggenhed: Tau Ceti V
Posts: 521
Nå, får slags vanskelige på grund af den vilkårlige antallet af linier mellem "test" og "verden", plus vilkårligt antal INES mellem "verden" og "test" ...
., .. nogen smartere end mig, vil sikkert give dig et bedre svar, men det virker
Code:
 sed 's/$/ @/' file.txt | sed -n '/test/,/world/p' | sed '/world/G' | sed -e :a -e '/@$/N; s/\@\n//; ta'

Sidst redigeret af System Shock; 08.08.2006 på 12:57 AM..
  #3 (permalink)  
Old 08-08-2006
vish_indian vish_indian is offline
Registreret Bruger
  
 

Join Date: Jun 2006
Beliggenhed: Delhi, Indien
Stillinger: 92
Citat:
Oprindeligt Indsendt af xb88
Med andre ord, ønsker jeg et resultat som følgende:
Dette er en test et to Hello, world!
test igen tre, fire fem seks syv verden
test otte, ni verden
Awk kan gøre det.

Code:
awk '/test/,/world/{ if($0~/world/) ORS="\n"; else ORS=" "; print}' filename
Sample output:
Dette er en test et to Hello, world!
test igen tre, fire fem seks syv verden
test otte, ni verden
  #4 (permalink)  
Old 08-08-2006
xb88 xb88 is offline
Registreret Bruger
  
 

Join Date: Aug 2006
Stillinger: 7
Tak til både System Shock og vish indian! Det synes der ikke er nogen nem måde sed at gøre det. Jeg er nødt til at bruge awk, perl, Eller noget andet ...
Closed Thread

Bogmærker

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 PÃ¥
Smilies er PÃ¥
[IMG] koden er PÃ¥
HTML-koden er Slukket
Trackbacks er PÃ¥
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle tidspunkter er GMT -4. Den tid er nu 08:34 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