|
|
|
|
Bonjour,
J'ai un fichier très volumineux à parcours.
Je voudrais que ma commande grep sorte à la première occurrence trouvée.
Sinon mon script mettrait des jours à se terminer puisque qu'il parcourt à chaque grep touuuuut le fichier.
je sais qu'il y a l'option grep -m NUMBER
mais elle est pas reconnue sur ma machine. peut etre ancienne version.
SVP aidez moi. je bloque la-dessous.
Configuration: Unix Firefox 3.0.9
Répondre à jipicy
|
Je t'avoue que je ne comprends plus ;-(((
[tmpfs]$ sed -n '/21622010039/p;q' plop [tmpfs]$ Il me renvoie bien la ligne sans le "q" : [tmpfs]$ sed -n '/21622010039/p' plop 21622010039|14| Par contre sur un autre fichier la commande "p;q" marche bien : [tmpfs]$ cat list.db toto 0123456789 tata 0555555555 titi 0677775555 tutu 0123456789 tete 0123456789 bobo 0555555555 baba 0987654321 bibi 0555555555 bubu 0123456789 [tmpfs]$ sed -n '/01/p;q' list.db toto 0123456789 [tmpfs]$Je ne comprends pas ;-((((( Désolé ;-( $ man woman Il n'y a pas de page de manuel pour woman. |
Salut,
$ cat base 21621623335704|17| 21621623336802|17| 21621623351963|17| 21621623357067|17| 21621623373862|17| 21621623376968|17| 21621623390324|17| 21621623391903|17| 21622010039|14| 21622010039|14| 21622010077|16| 21622010191|36| 21622010275|16| 21622010352|16| 21622010405|18| 21622010547|14| 21622010664|37| 21622010692|17| 21622010709|36| 21622010720|17| 21622010737|17| 21622010822|37| 21622010944|36| 21622011017|14| $ perl -ne 'next unless /^(21622010039)/;print "ligne $. => $1\n"' base ligne 9 => 21622010039 ligne 10 => 21622010039 $ perl -ne 'next unless /^(21622010039)/;print "ligne $. => $1\n" and exit' base ligne 9 => 21622010039106485010510997108
|
Re,
$ cat base 21621623335704|17| 21621623336802|17| 21621623351963|17| 21621623357067|17| 21621623373862|17| 21621623376968|17| 21621623390324|17| 21621623391903|17| 21622010039|14| 21622010039|14| 21622010077|16| 21622010191|36| 21622010275|16| 21622010352|16| 21622010405|18| 21622010547|14| 21622010664|37| 21622010692|17| 21622010709|36| 21622010720|17| 21622010737|17| 21622010822|37| 21622010944|36| 21622011017|14| $ while read ligne;do echo $ligne|grep 21622010039 && break;done <base 21622010039|14|106485010510997108 |
Répondre à dubcek
|
Re,
for MSISDN in $(cat msisdn.txt) do echo $MSISDN result=$(perl -ne 'next unless /^$MSISDN/;print and exit' base) echo $result done Mais je ne comprends pas ce que tu veux. Comment ça la 1ère ligne?! Il faut que tu exécutes le script est affiche ici le résultat. Il faudra aussi que tu affiches ce que tu veux obtenir. En réalité, tu as posé une question pour un cas particulier, mais il s'avère que le problème doit être traiter de façon globale. On attends tes explications. 106485010510997108
|