![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| string sletting, variabelt innhold, fast skilletegn | rebelbuttmunch | Shell programmering og Skripting | 2 | 03-24-2009 07:44 |
| c program for å trekke ut teksten mellom to skilletegn fra enkelte tekstfil | kukretiabhi13 | High Level Programmering | 7 | 12-03-2008 06:29 |
| Hvordan hente data fra en tekstfil i Unix | shikhakaul | Shell programmering og Skripting | 4 | 01-25-2008 11:20 |
| konvertere XML fil inn Tekstfil (fast lengde) | ram2s2001 | Shell programmering og Skripting | 0 | 11-03-2005 01:28 |
| Sette inn ny linje etter matche en fast streng | sunil_neha | Shell programmering og Skripting | 6 | 04-13-2004 12:09 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Hent radene med kampen strengen på en fast Lenth tekstfil - NO skilletegn
Hei
Jeg prøver å hente rader med match string "0000001234" Input-filen ser ut 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 trenger å hente rader med match string "0000001234" og skrive ut linjene i en egen fil ... Jeg prøvde med grep kommandoen ved grep ^ 09 arkiv> utfil den arbeider fin bare når strengen starter først. Behage kanne noe ettall hjelpe meg hvordan vi kan gjøre dette ... |
|
||||
|
grep skal arbeide på en linje for linje grunnlag, så grep ^ 09 er å gjøre akkurat det du ba den gjøre ved å finne en linje som begynner med 09 Du sannsynligvis vil bruke awk, ville det være den enkleste ting å gjøre. Hvis dataene er i samme format som du ga, kunne du gjøre noe slik ut: Code:
awk '$4 == "0000001234"' file Som standard (hvis du ikke fortelle awk å skrive ut noe spesifikt), vil det ut hele posten / rad. Så ovenfor vil bare skrive ut en rad hvis det fjerde feltet er hva som skal vises. Du kan også bruke ordet grenser 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 Hope som hjelper. |
|
||||
|
Sitat:
Takk for hjelpen hva om inndatafilen er som dette 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 nå vil jeg hente rader med match string "0000001234" dvs. søke strengen fra 10. kolonnen til 19 th kolonnen og hente rader |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|