The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
ksh - lees bestand met toonaangevende ruimten momi Programmeren en Shell Scripting 2 03-17-2008 03:02 PM
Stripping toonaangevende ruimten op rechts naam Marcia P UNIX voor Dummies Questions & Answers 2 02-28-2006 10:32 PM
Het verwijderen van toonaangevende en naloopspaties van gegevens tussen de tags in xml. jhmr7 UNIX voor Dummies Questions & Answers 2 05-18-2005 11:27
Strip toonaangevende en naloopspaties alleen in een shell variabele met ingesloten ruimten jerardfjay Programmeren en Shell Scripting 6 03-07-2005 02:24 PM
Toonaangevende en naloopspaties sleepster Programmeren en Shell 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 6
verwijderen leidende spaties uit een lijn

Hallo vrienden

Ik heb hulp nodig,

Ik heb een bestand dat ziet er als volgt

TEMP 014637065 014637065 517502 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

als er ooit is een toonaangevende ruimte op de lijn (hier is er een ruimte aan de start van lijn 2 en 6, die niet mogen worden zichtbaar in thread), moet ik die verwijderen en toevoegen aan de vorige regel. Dit betekent dat ik wil een output bestand dat eruit ziet
TEMP 014637065 014637065 517502 517502 RTE RTE 517502 517502
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
Berichten: 4.346

Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file

Groeten

Laatst bewerkt door Franklin52; op 03.15.2008 07:34.. Reden: modifation code
  #3 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 6
Citaat:
Oorspronkelijk geplaatst door Franklin52 View Post
Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file

Groeten
Hallo Franklin,
Ik probeerde met de bovenstaande optie is het geven van syntax error voor de tweede lijn
foutmeldingen
*******
awk: syntaxisfout buurt van lijn 1
awk: bail out buurt van lijn 1
*******
Ik probeerde ook met awk '/ ^ / (print p $ 0;) (p volgende \u003d $ 0) END (print)', maar hier zal het niet de lijnen overwegen zonder een toonaangevende ruimte

pls help

Laatst bewerkt door lijojoseph; op 03.15.2008 09:12..
  #4 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.346
Gebruik nawk of / usr/xpg4/bin/awk op Solaris

Groeten
  #5 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 6
Smile

Frank,
thanks a lot het werkt perfect met nawk.

ook hier heb ik een klein probleem
als er belangrijke ruimtes in 2 opeenvolgende regels dan is het niet overweegt de tweede ..
dat is
*** Input file
TEMP 014637065 014637065 517502 517502 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

Als toonaangevende ruimten zijn er in de regels 2 en 3 wordt de uitvoer moet zien
TEMP 014637065 014637065 517502 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

Kunt u pls helpen?

Ook kunt u gewoon explane me de awk code als je tijd hebt
Nogmaals hartelijk dank voor youe hulp
  #6 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.346
Probeer dit:


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

Uitleg van de code:

/ ^ / (P $ p \u003d 0;) volgende # Aaneenschakelen lijnen die beginnen met een ruimte met de vorige regel en lees volgende regel

De volgende commando effect van de andere lijnen:

p (print p) # Druk de vorige regel, indien ingesteld
(p \u003d $ 0) # Stel p
END (print p) # Er zijn geen lijnen, print vorige regel (s)

Gebruik nawk of / usr/xpg4/bin/awk op Solaris

Groeten
Closed Thread

Bladwijzers

Labels
solaris

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 09:14 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0