The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 3
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 ...
  #2 (permalink)  
Old 05-27-2009
Rhije Rhije is offline
Registrert bruker
  
 

Bli Dato: desember 2008
Innlegg: 103
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.
  #3 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 3
Sitat:
Originally Posted by Rhije View Post
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.

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
  #4 (permalink)  
Old 05-27-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 542
Sitat:
Originally Posted by nareshk View Post
... 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
For eksempel slik:


Code:
$
$ awk 'substr($0,10,10) == "0000001234"' input.txt
09 0 01000000001234 Z 1
09 0 01000000001234 Z 1
$


tyler_durden

Sist endret av durden_tyler; 05-27-2009 kl 06:34..
  #5 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 3
Sitat:
Originally Posted by durden_tyler View Post
For eksempel slik:


Code:
$
$ awk 'substr($0,10,10) == "0000001234"' input.txt
09 0 01000000001234 Z 1
09 0 01000000001234 Z 1
$

tyler_durden
Thanks guys!

Dette hjalp meg mye!
  #6 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: Bangalore
Innlegg: 514

Code:
grep "\<0000001234\>" file > newfile


-Devaraj Takhellambam
  #7 (permalink)  
Old 05-27-2009
Rhije Rhije is offline
Registrert bruker
  
 

Bli Dato: desember 2008
Innlegg: 103
Vel, du kan også bare gjøre:


Code:
awk '$3 ~ /0000001234/' file

Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:33.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0