![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
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 |
| Parsning av ärende för rapporten Generation (String parsning och delning) | umar.shaikh | Shell-programmering och Skript | 8 | 03-02-2009 01:38 |
| parsning fast längd område med yacc / bison | sungita | High Level Programming | 1 | 01-27-2009 11:27 |
| Läs en sträng med ledande utrymmen och hitta den längd av strängen | dayamatrix | UNIX for Dummies Frågor & Svar | 2 | 11-13-2008 10:08 |
| Analysera en variabel längd titelinformation | Barb | UNIX for Dummies Frågor & Svar | 17 | 10-01-2004 08:37 |
| Analysera data och behålla de fulla längd av variabel | app4dxh | Shell-programmering och Skript | 3 | 11-22-2002 12:04 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Analysera 286 längd Teckensträng
Hej Vänner,
Jag har. Txt-fil som har 13000 poster. Varje post är 278 tecken lång. Jag använder följande kod för att hämta strängen och det tar nästan 10 minuter. Alla förslag tack. katt filename.txt | samtidigt läsa linje göra f1 \u003d `echo $ line | awk '(print substr ($ 1,1,9))'` f2 \u003d `echo $ line | awk '(print substr ($ 1,10,20))'` f3 \u003d `echo $ line | awk '(print substr ($ 1,30,50))'` F4 \u003d `echo $ line | awk '(print substr ($ 1,80,10))'` F5 \u003d `echo $ line | awk '(print substr ($ 1,90,50))'` F6 \u003d `echo $ line | awk '(print substr ($ 1,140,10))'` F7 \u003d `echo $ line | awk '(print substr ($ 1,150,50))'` f8 \u003d `echo $ line | awk '(print substr ($ 1,200,10))'` F9 \u003d `echo $ line | awk '(print substr ($ 1,210,50))'` F10 \u003d `echo $ line | awk '(print substr ($ 1,260,10))'` F11 \u003d `echo $ line | awk '(print substr ($ 1,270,8))'` F12 \u003d `echo $ line | awk '(print substr ($ 1,278,8))'` s1 \u003d "echo $ f1" | "$ f2" | "$ f3" | "$ f4" | "$ F5" | "" s2 \u003d `echo $ F6" | "$ F7" | "$ f8" | "" s3 \u003d "echo $ F9" | "$ F10" | "" s4 \u003d `echo $ f11" | "$ F12" echo $ s1 $ s2 $ s3 $ s4>> FinalResult.txt gjord |
|
||||
|
Ett enklare
metod är att skapa skript parse.awkKod:
{
f1=substr($1,1,9);
f2=substr($1,10,20);
f3=substr($1,30,50);
f4=substr($1,80,10);
f5=substr($1,90,50);
f6=substr($1,140,10);
f7=substr($1,150,50);
f8=substr($1,200,10);
f9=substr($1,210,50);
f10=substr($1,260,10);
f11=substr($1,270,8);
f12=substr($1,278,8);
OFS="|";
print f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12;
print "\n";
}
Kod:
awk -f parse.awk filename.txt > FinalResult.txt |
|
|||||
|
|
||||
|
Hej ppl ..
tänk om jag har den rad som denna A BCD som visar att första området är f1 \u003d A, f2 \u003d f3 \u003d BCD dvs andra området har 6 tomma tecken. Så nu om jag använder ovanstående script jag inte kunnat få de områden som i så fall. Kan du föreslå i så fall hur den ska? Skål Amit |
|
|||||
|