![]() |
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 |
| tusentalsavgränsare | ynixon | Shell-programmering och Skript | 11 | 04-13-2008 11:43 |
| regexp för att skriva ut efter ett område SEPERATOR | ramky79 | Shell-programmering och Skript | 7 | 05-09-2007 07:31 |
| hur man kan inkludera området separator om det finns tomma fält? | REV | Shell-programmering och Skript | 19 | 07-13-2005 05:50 |
| Hur anger jag flik som området separator för slags? | SSteve | UNIX for Dummies Frågor & Svar | 8 | 04-26-2005 05:39 |
| Separator i Makefile? | laila63 | Shell-programmering och Skript | 2 | 07-01-2004 11:11 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
området separator som regexp
Jag har en viss version av awk som inte stöder vanliga uttrycket området separatorer (varken har jag nawk eller gäspa). Hur går jag om att läsa en linje med det område som separator som antingen strängen "\u003d #" eller "+\u003d".
Mina uppgifter ser ut så här: Abhishek \u003d # nnnnn + # 1234 + # 87 Ett alternativ är att använda tr och förändring "\u003d" till "+" (Jag är säker på "\u003d" doesnt visas någon annanstans), men eftersom filen är ganska stor och det finns en hel del operationer jag planerar att göra om områden, medan jag läser filen rad för rad, skulle jag avstå från att använda det. Några förslag tack? |
|
||||
|
använda perl.
inga problem att dela upp det. till exempel: Kod:
$ cat 1 abhishek=#nnnnn+#1234+#87 $ cat 1| perl -naF'/(\=#|\+#)/' -e '$"=" "; print "@F"' abhishek =# nnnnn +# 1234 +# 87 Kod:
$ cat 1| perl -naF'/\=#|\+#/' -e '$"=" "; print "@F"' abhishek nnnnn 1234 87 |
|
||||
|
Tack så mycket! Men kan du förklara syntaxen? Jag är medveten om vissa grundläggande PERL (men knappast oneliners!), och kan göra att du dela upp $ _ om mönster "+ #" eller "\u003d #" och tilldela det att matrisen F. Men jag dont förstå mycket av något annat i meddelandet . Kan du säga mig var kan jag gå in ytterligare uppgifter för att behandla de områden som i en slinga kroppen (exempelvis en if-sats för att testa något om andra array parameter)?
Dessutom, om möjligt, kan du föreslå några on-line PERL one-liner referenser? |