The UNIX and Linux Forums  


Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
chaîne de suppression, contenu variable, fixe les délimiteurs rebelbuttmunch De programmation et de script Shell 2 03-24-2009 07:44 AM
c programme pour extraire du texte entre deux délimiteurs de certains fichier texte kukretiabhi13 High Level Programming 7 12-03-2008 06:29 PM
Comment récupérer les données d'un fichier texte Unix shikhakaul De programmation et de script Shell 4 01-25-2008 11:20 AM
convertir fichier XML en fichier texte (longueur fixe) ram2s2001 De programmation et de script Shell 0 11-03-2005 01:28 AM
Insertion de nouvelle ligne, après un match de chaîne fixe sunil_neha De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 3
Récupérer les lignes de match sur une chaîne de caractères fixe lenth fichier texte - NO délimiteurs

Salut

Je suis en train de chercher les lignes avec string match "0000001234"

Fichier d'entrée ressemble à ci-dessous:

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

ici le scénario est, comme nous avons besoin pour aller chercher les lignes de match chaîne "0000001234" et d'imprimer les lignes dans un fichier séparé ...

j'ai essayé avec la commande grep de grep ^ 09 fichier> fichier de sortie, il fonctionne bien que lorsque la chaîne commence en premier.

S'il vous plaît quelqu'un peut m'aider à savoir comment nous pouvons faire ...
  #2 (permalink)  
Old 05-27-2009
Rhije Rhije is offline
Registered User
  
 

Join Date: Dec 2008
Messages: 103
grep va travailler sur une ligne par ligne, de sorte grep ^ 09 fait exactement ce que vous avez demandé à le faire en trouvant une ligne qui commence par 09

Vous voudrez probablement utiliser awk, il serait le plus simple à faire. Si les données sont dans le même format que vous avez fournis, vous pourriez faire quelque chose comme ce qui suit:

Code:
awk '$4 == "0000001234"' file
Par défaut (si vous ne dites rien awk pour imprimer spécifique), il imprime l'ensemble du dossier / row. Ainsi, les ci-dessus ne imprimer une ligne si le quatrième domaine est ce qui est montré.

Vous pouvez également utiliser grep dans les limites de mots:

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 that helps.
  #3 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 3
Citation:
Posté par Rhije View Post
grep va travailler sur une ligne par ligne, de sorte grep ^ 09 fait exactement ce que vous avez demandé à le faire en trouvant une ligne qui commence par 09

Vous voudrez probablement utiliser awk, il serait le plus simple à faire. Si les données sont dans le même format que vous avez fournis, vous pourriez faire quelque chose comme ce qui suit:

Code:
awk '$4 == "0000001234"' file
Par défaut (si vous ne dites rien awk pour imprimer spécifique), il imprime l'ensemble du dossier / row. Ainsi, les ci-dessus ne imprimer une ligne si le quatrième domaine est ce qui est montré.

Vous pouvez également utiliser grep dans les limites de mots:

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

Merci pour votre aide

si le fichier est comme ça

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

et maintenant je veux aller chercher le match des lignes avec des cordes "0000001234" c'est-à-dire la chaîne de recherche à partir du 10 e colonne de la colonne 19 et aller chercher les lignes
  #4 (permalink)  
Old 05-27-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Registered User
  
 

Date d'inscription: avril 2009
Posts: 537
Citation:
Posté par nareshk View Post
... que si le fichier est comme ça

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

et maintenant je veux aller chercher le match des lignes avec des cordes "0000001234" c'est-à-dire la chaîne de recherche à partir du 10 e colonne de la colonne 19 et aller chercher les lignes
Quelque chose comme ceci:

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

tyler_durden

Dernière édition par durden_tyler; au 05.27.2009 06:34 PM..
  #5 (permalink)  
Old 05-27-2009
nareshk nareshk is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 3
Citation:
Posté par durden_tyler View Post
Quelque chose comme ceci:

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

Cela m'a beaucoup aidé!
  #6 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Registered User
  
 

Join Date: Oct 2007
Lieu: Bangalore
Messages: 514
Code:
grep "\<0000001234\>" file > newfile

-Devaraj Takhellambam
  #7 (permalink)  
Old 05-27-2009
Rhije Rhije is offline
Registered User
  
 

Join Date: Dec 2008
Messages: 103
Eh bien, vous pouvez aussi faire:

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

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 09:18 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0