The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

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
ksh - læs filen med førende rum momi Shell Programmering og Scripting 2 03-17-2008 03:02 PM
Stripping førende rum på højre berettiget navn Marcia P UNIX for dummyer Spørgsmål & svar 2 02-28-2006 10:32 PM
Fjernelse førende og efterfølgende mellemrum af data mellem de tags i XML. jhmr7 UNIX for dummyer Spørgsmål & svar 2 05-18-2005 10:27 AM
Striben førende og efterfølgende mellemrum kun i en shell variable med indlejret rum jerardfjay Shell Programmering og Scripting 6 03-07-2005 02:24 PM
Førende og efterfølgende mellemrum sleepster Shell Programmering og Scripting 7 10-29-2003 11:48 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 03-15-2008
lijojoseph lijojoseph is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 6
fjerne førende rum fra en linje

Hej venner

Jeg har brug for hjælp,

Jeg har en fil, der ser ud som følger

TEMP 014637065 014637065 517502 517.502 RTE
517502 517502 RTE
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

når der nogensinde er en førende plads på linje (her er der et mellemrum i starten af linje 2 og 6, der ikke kan ses i tråd), jeg har brug for at fjerne det og vedhæfte den foregående linje. Dette betyder, at jeg ønsker en output-fil der ligner
TEMP 014637065 517502 014637065 517502 RTE 517502 517502 RTE
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3 YTERS GJK JKLS
  #2 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Indlæg: 4.300
Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file
Hilsen

Senest redigeret af Franklin52; 03-15-2008 kl 07:34 AM.. Årsag: modifation kode
  #3 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 6
Citat:
Oprindeligt Indsendt af Franklin52 View Post
Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file
Hilsen
Hej Franklin,
Jeg forsøgte med ovenstående løsning er at give syntaksfejl for anden linie
fejlmeddelelser
*******
awk: syntaksfejl nær linje 1
awk: bailing ud nær linje 1
*******
også jeg forsøgt med awk '/ ^ / (print p $ 0; næste) (p \u003d $ 0) END (print)', men her er det vil ikke betragte strækninger uden en førende plads

pls hjælp

Senest redigeret af lijojoseph; 03-15-2008 kl 09:12 AM..
  #4 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Indlæg: 4.300
Brug nawk eller / usr/xpg4/bin/awk på Solaris

Hilsen
  #5 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 6
Smile

Frank,
thanks a lot den virker perfekt med nawk.

her har jeg også et lille problem
hvis der er førende rum i 2 på hinanden følgende linjer så er det ikke overvejer det andet ..
det er
*** Inddatafil
TEMP 014637065 014637065 517502 517.502 RTE
517502 517502 RTE
226
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

hvis ledende rum er der i linie 2 og 3 er udskriften skal se ud
TEMP 014637065 517502 014637065 517502 RTE 517502 517502 RTE 2634
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

Kan du pls hjælp?

Også kan du bare explane mig awk kode, hvis du har tid
Endnu en gang mange tak for youe hjælp
  #6 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Indlæg: 4.300
Prøv dette:

Code:
awk '
/^ /{p=p $0;next}
p{print p}
{p=$0}
END{print p}
' file
Explaination af koden:

/ ^ / (P \u003d p $ 0; næste) # Konkatenere linjer, der begynder med et rum med den foregående linje og læse næste linje

De næste kommandoer virkning de andre linjer:

p (print p) # Udskriv foregående linje, hvis der
(p \u003d $ 0) # Set p
END (print p) # Der er ikke flere linjer, udskrive foregående linje (r)

Brug nawk eller / usr/xpg4/bin/awk på Solaris

Hilsen
Closed Thread

Bogmærker

Tags
Solaris

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 02:07 AM.


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