[challenge debile] Un cat pour deux grep....

Un cat pour deux grep.... [challenge debile] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 03-06-2003 à 15:23:51    

Voilà, je me posais une question (conne [:ddr555]) J'ai un fichier avec plusieurs lignes. Suivant le début de ces lignes, il faut placer la ligne en question dans un fichier de sortie ou un autre.
Par exemple:
 

AAblablabladesdonnees01010101
BBunautretypededonneesici424242
AArevoicilepremiertype12345


 
On pourrait le faire avec:
 
cat fichier|grep ^AA>toto
cat fichier|grep ^BB>titi
 
mais je cherche un moyen (juste pour le fun :sol:) de le faire avec seulement UN cat.... :whistle:
Qqun a une petite idée ?
 
 
 :hello:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 03-06-2003 à 15:23:51   

Reply

Marsh Posté le 03-06-2003 à 15:28:38    

cat toto | grep "[^AA,^BB]" ??


Message édité par Tomate le 03-06-2003 à 15:35:41

---------------
:: Light is Right ::
Reply

Marsh Posté le 03-06-2003 à 15:31:57    

tomate77 a écrit :

cat file |grep ^{AA,BB}  ??


 
et comment tu rediriges dans deux fichiers après ?[:wam]


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 03-06-2003 à 15:32:57    

freds45 a écrit :


 
et comment tu rediriges dans deux fichiers après ?[:wam]


 
t es trop exigent, contente toi de ca :whistle:


---------------
:: Light is Right ::
Reply

Marsh Posté le 03-06-2003 à 15:33:38    

aucun intérêt, ca réponds pas à sa question

Reply

Marsh Posté le 03-06-2003 à 15:35:03    

fais ça avec gawk et pas grep... et puis pas besoin de cat dans l'histoire, grep (ou gawk) sait lire lui-même un fichier  :o

Reply

Marsh Posté le 03-06-2003 à 15:36:34    

Sixtiz a écrit :

fais ça avec gawk et pas grep... et puis pas besoin de cat dans l'histoire, grep (ou gawk) sait lire lui-même un fichier  :o  


 
habitude de cat fichier|grep toto [:spamafote]


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 03-06-2003 à 15:41:51    

Je sais bien moi aussi je le fais souvent, mais c'est sous-optimal comme méthode  :whistle:  
 
Bon, sinon :
 
gawk '/AA/ { print > "tata" } /BB/ { print > "titi" }' file
 
devrait marcher à peu de choses près (pas testé)

Reply

Marsh Posté le 03-06-2003 à 15:49:02    

Sixtiz a écrit :

Je sais bien moi aussi je le fais souvent, mais c'est sous-optimal comme méthode  :whistle:  
 
Bon, sinon :
 
gawk '/AA/ { print > "tata" } /BB/ { print > "titi" }' file
 
devrait marcher à peu de choses près (pas testé)


 
 :jap: je vais tester ca ce soir !
pour /AA/ et /BB/ c'est possible de mettre un ^ devant pour lui indiquer que c'est le début de ligne, comme avec le grep ?
tata et titi ce sont les 2 noms de fichiers ?
 
 :hello:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 03-06-2003 à 15:51:16    

Oui, tata et titi c'est le fichiers de destination, file le ficher source.
 
Et entre les //, c'est une expression régulière donc ^, $ et compagnie doivent marcher.

Reply

Marsh Posté le 03-06-2003 à 15:51:16   

Reply

Marsh Posté le 03-06-2003 à 15:52:56    

Sixtiz a écrit :

Je sais bien moi aussi je le fais souvent, mais c'est sous-optimal comme méthode  :whistle:  
 
Bon, sinon :
 
gawk '/AA/ { print > "tata" } /BB/ { print > "titi" }' file
 
devrait marcher à peu de choses près (pas testé)


heu le "print >" marchera le premier coup mais apres, il va ecraser (ou tenter) le fichier ... non ?


---------------
get amaroK plugin
Reply

Marsh Posté le 03-06-2003 à 16:00:09    

Sixtiz a écrit :

Oui, tata et titi c'est le fichiers de destination, file le ficher source.
 
Et entre les //, c'est une expression régulière donc ^, $ et compagnie doivent marcher.


 
 
merci :)


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 03-06-2003 à 16:36:18    

freds45 a écrit :

Voilà, je me posais une question (conne [:ddr555]) J'ai un fichier avec plusieurs lignes. Suivant le début de ces lignes, il faut placer la ligne en question dans un fichier de sortie ou un autre.
Par exemple:
 

AAblablabladesdonnees01010101
BBunautretypededonneesici424242
AArevoicilepremiertype12345


 
On pourrait le faire avec:
 
cat fichier|grep ^AA>toto
cat fichier|grep ^BB>titi
 
mais je cherche un moyen (juste pour le fun :sol:) de le faire avec seulement UN cat.... :whistle:
Qqun a une petite idée ?
 
 
 :hello:  


 
Avec un seul cat ? fastoche !
 

cat fichier|grep ^AA>toto
grep ^BB fichier>titi


 
 :hello:  
(je suis déja dehors)

Reply

Marsh Posté le 03-06-2003 à 16:37:24    

[Albator] a écrit :


 
Avec un seul cat ? fastoche !
 

cat fichier|grep ^AA>toto
grep ^BB fichier>titi


 
 :hello:  
(je suis déja dehors)


 
 
 :sleep:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 03-06-2003 à 16:40:07    


 
En ultra porcos si tu insistes:
 
cat fichier|
while read ligne
do
 echo $ligne|grep ^AA &>/dev/null && echo $ligne >>toto
 echo $ligne|grep ^BB &>/dev/null && echo $ligne >>titi
done

Reply

Marsh Posté le 03-06-2003 à 16:44:00    

[:mystik23]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed