The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
ksh - läs filen med ledande utrymmen momi Shell-programmering och Skript 2 03-17-2008 03:02
Strippning ledande utrymmen på högerställda namn Marcia P UNIX for Dummies Frågor & Svar 2 02-28-2006 10:32
Borttagning ledande och blanksteg av data mellan taggarna i xml. jhmr7 UNIX for Dummies Frågor & Svar 2 05-18-2005 11:27
Strip ledande och blanksteg bara ett skal variabel med inbyggda utrymmen jerardfjay Shell-programmering och Skript 6 03-07-2005 02:24
Ledande och blanksteg sleepster Shell-programmering och Skript 7 10-29-2003 11:48

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 03-15-2008
lijojoseph lijojoseph is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 6
undanröja ledande utrymmen från en linje

Hej vänner

Jag behöver lite hjälp,

Jag har en fil som ser ut som följande

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

om någonsin är en ledande plats på linjen (här finns ett utrymme vid start av linje 2 och 6 som inte får synas i tråd), jag ta bort det och lägga till den tidigare linjen. Detta innebär att jag vill ha en output fil som ser ut som
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
  #2 (permalänk)  
Old 03-15-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.346

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

Hälsningar

Senast redigerad av Franklin52; 03-15-2008 at 07:34.. Orsak: modifation kod
  #3 (permalänk)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 6
Citat:
Ursprungligen postat av Franklin52 View Post
Kod:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file

Hälsningar
Hello Franklin,
Jag försökte med ovanstående alternativ det ger syntaxfel för andra raden
felmeddelanden
*******
awk: syntaxfel nära linje 1
awk: bailing ut nära linje 1
*******
också jag försökt med awk '/ ^ / (print p $ 0; nästa) (p \u003d $ 0) END (print)' men här kommer det inte att betrakta rader utan ledande plats

pls hjälp

Senast redigerad av lijojoseph; 03-15-2008 at 09:12..
  #4 (permalänk)  
Old 03-15-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.346
Använd nawk eller / usr/xpg4/bin/awk på Solaris

Hälsningar
  #5 (permalänk)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 6
Smile

Frank,
tack själv en lott det fungerar perfekt med nawk.

här också att jag har ett litet problem
om det finns ledande utrymmen i 2 på varandra följande rader är det överväger inte det andra ..
som
*** Indatafil
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

om ledande utrymmen där i linje 2 och 3 är utmatningen ska se ut
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

Kan du pls hjälp?

Också kan du explane bara mig awk koden om du har tid
Än en gång tack för youe hjälp
  #6 (permalänk)  
Old 03-15-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.346
Prova detta:


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

Förklaring till kod:

/ ^ / (P \u003d p $ 0; nästa) # Sammanfoga rader som börjar med ett utrymme med den tidigare linjen och läs nästa rad

Nästa kommandon effekt på de andra linjerna:

p (print p) # Print den tidigare linjen om uppsättning
(p \u003d $ 0) # Set p
END (print p) # Det finns inga fler rader, skriva ut föregående rad (er)

Använd nawk eller / usr/xpg4/bin/awk på Solaris

Hälsningar
Closed Thread

Komihåglista

Taggar
Solaris

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 04: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