![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
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 |
|
||||
|
Citat:
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.. |
|
||||
|
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 ![]() |
|
||||
|
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 |