[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rechercher une ligne dans un gros fichier trié



J.Pierre Pourrez a écrit, mardi 16 novembre 2004, à 22:39 :
> Le 16/11/04 à 11:42, Yves Rutschle écrivait:
> 
> > cat `find $DISTS_DIR -name Packages` | grep $MOTIF | sed "s!$MOTIF!$HOST/!" | sort > $TMPFILE2
> 
> On peut simplifier un peu plus:
>   find $DIST_DIR -name Packages -exec grep $MOTIF {} \; | sed "s!$MOTIF!$HOST/!" > $TMPFILE2

L'UUOC est supprimé, mais il reste un UUOG :)

 ... -exec sed -n "s!$MOTIF!$HOST/!p" ... 

ou encore "\,$MOTIF,s,,$HOST/,p" (s'il n'y a pas de virgule dans le motif).

> Je n'ai pas de souci avec les points d'exclamation. Voici mon shell:
>   jpierre@bazooka:~$ sh --version
>   GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
>   Copyright (C) 2002 Free Software Foundation, Inc.

Avec zsh on pourrait aussi se passer de find.
-- 
Jacques L'helgoualc'h



Reply to: