The UNIX and Linux Forums  


Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
stringa di soppressione, il contenuto della variabile, fisso delimitatori rebelbuttmunch Shell scripting e di programmazione 2 03-24-2009 07:44 AM
c programma per estrarre il testo tra due delimitatori di alcuni file di testo kukretiabhi13 Di programmazione ad alto livello 7 12-03-2008 06:29 PM
Come recuperare i dati da un file di testo in Unix shikhakaul Shell scripting e di programmazione 4 01-25-2008 11:20 AM
convertire file XML in file di testo (lunghezza fissa) ram2s2001 Shell scripting e di programmazione 0 11-03-2005 01:28 AM
Inserimento nuova riga dopo la partita di una stringa sunil_neha Shell scripting e di programmazione 6 04-13-2004 12:09 PM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 3
Scarica il file con la stringa di match su un determinato file di testo lenth - NO delimitatori

Salve

Sto cercando di recuperare il file con la partita stringa "0000001234"

Il file di input e si presenta come di seguito:

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

qui lo scenario è come abbiamo bisogno di scaricare il file con la partita stringa "0000001234" e stampare le righe in un file separato ...

Ho provato con il comando grep da grep ^ 09 file> file di output che funziona bene solo quando è la stringa inizia per primo.

Per favore qualcuno può aiutarmi a come si possa fare questo ...
  #2 (permalink)  
Old 05-27-2009
Rhije Rhije is offline
Utente Registrato
  
 

Iscriviti Data: dicembre 2008
Interventi: 103
grep sarà lavorando su una riga per riga, in modo grep ^ 09 sta facendo proprio quello che lei ha chiesto di fare da trovare qualsiasi linea che inizia con 09

Probabilmente si desidera utilizzare awk, sarebbe la cosa più facile da fare. Se i dati nello stesso formato che ci hai fornito, è possibile fare qualcosa di simile a quanto segue:


Codice:
awk '$4 == "0000001234"' file

Per impostazione predefinita (se non awk dire qualcosa di specifico per la stampa), verrà stampata l'intera registrazione / riga. Così la stampa solo sopra una riga, se il quarto settore è quello che viene visualizzato.

Si può anche usare in parola confini grep:


Codice:
-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 that helps.
  #3 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 3
Citazione:
Originalmente inviato da Rhije View Post
grep sarà lavorando su una riga per riga, in modo grep ^ 09 sta facendo proprio quello che lei ha chiesto di fare da trovare qualsiasi linea che inizia con 09

Probabilmente si desidera utilizzare awk, sarebbe la cosa più facile da fare. Se i dati nello stesso formato che ci hai fornito, è possibile fare qualcosa di simile a quanto segue:


Codice:
awk '$4 == "0000001234"' file

Per impostazione predefinita (se non awk dire qualcosa di specifico per la stampa), verrà stampata l'intera registrazione / riga. Così la stampa solo sopra una riga, se il quarto settore è quello che viene visualizzato.

Si può anche usare in parola confini grep:


Codice:
-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 that helps.

Grazie per il vostro aiuto

cosa fare se il file di input è piaciuto questo

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

ed ora voglio recuperare il file con la partita stringa "0000001234", ossia la stringa di ricerca dal 10 al 19 ° colonna colonna e scaricare il file
  #4 (permalink)  
Old 05-27-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 547
Citazione:
Originalmente inviato da nareshk View Post
... cosa succede se il file di input è piaciuto questo

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

ed ora voglio recuperare il file con la partita stringa "0000001234", ossia la stringa di ricerca dal 10 al 19 ° colonna colonna e scaricare il file
Qualcosa di simile a questo:


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


tyler_durden

Ultimo a cura di durden_tyler; al 05/27/2009 06:34 PM..
  #5 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 3
Citazione:
Originalmente inviato da durden_tyler View Post
Qualcosa di simile a questo:


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

tyler_durden
Grazie ragazzi!

Questo mi ha aiutato molto!
  #6 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2007
Località: Bangalore
Interventi: 514

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


-Devaraj Takhellambam
  #7 (permalink)  
Old 05-27-2009
Rhije Rhije is offline
Utente Registrato
  
 

Iscriviti Data: dicembre 2008
Interventi: 103
Beh, si può anche semplicemente fare:


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

Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 05:06 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0