![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| string sletning, variabelt indhold, faste afgrænsere | rebelbuttmunch | Shell Programmering og Scripting | 2 | 03-24-2009 07:44 AM |
| C-program til at udtrække teksten mellem to delimiters fra nogle tekstfil | kukretiabhi13 | Højtstående Programmering | 7 | 12-03-2008 06:29 PM |
| Hvordan at hente data fra en tekstfil i Unix | shikhakaul | Shell Programmering og Scripting | 4 | 01-25-2008 11:20 AM |
| konvertere XML-fil i Tekstfil (fast længde) | ram2s2001 | Shell Programmering og Scripting | 0 | 11-03-2005 01:28 AM |
| Indsættelse af nye linje efter match af en fast string | sunil_neha | Shell Programmering og Scripting | 6 | 04-13-2004 11:09 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Hente rækker med match streng på en fast Lenth tekstfil - NO afgrænsere
Hej
Jeg forsøger at hente de rækker med match streng "0000001234" Input-filen ser ud som nedenfor: 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 her scenariet er som vi er nødt til at hente rækker med match streng "0000001234" og udskrive linjer i en separat fil ... Jeg forsøgte med grep kommando ved grep ^ 09 fil> output fil fungerer det fint, når strengen er starter først. Please kan nogen hjælpe mig, hvordan vi kan gøre dette ... |
|
||||
|
grep bliver arbejdet på en linje for linje, så grep ^ 09 gør lige hvad du har bedt den om at gøre ved at finde en linje, der begynder med 09
Du sandsynligvis vil bruge awk, ville det være den letteste ting at gøre. Hvis dataene er i samme format som du har givet, kan du gøre noget som følgende: Code:
awk '$4 == "0000001234"' file Du kan også bruge ordet grænser i grep: Code:
-bash-3.2$ cat test.txt 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 09 0 XXX 50000001234 Z 1 09 0 XXX 40000001234 Z 1 09 0 XXX 30000001234 Z 1 09 0 XXX 10000001234 Z 1 -bash-3.2$ grep "\<0000001234\>" test.txt 09 0 XXX 0000001234 Z 1 09 0 XXX 0000001234 Z 1 |
|
||||
|
Citat:
Tak for din hjælp hvad hvis inddatafilen er sådan 09 0 01000000001234 Z 1 09 0 01000000001234 Z 1 09 0 010050000001234 Z 1 09 0 010040000001234 Z 1 09 0 010030000001234 Z 1 09 0 010010000001234 Z 1 og nu vil jeg hente rækker med match streng "0000001234", dvs søge strengen fra den 10. kolonne til 19. kolonne og hente rækker |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|