[linux-l] xargs input name

Oswald Buddenhagen ossi at kde.org
Mo Apr 7 14:17:45 CEST 2003


On Mon, Apr 07, 2003 at 01:08:44PM +0200, Baerwaldt, Ralf wrote:
> > find . -type f -print0 | xargs --null sed -e "s/hda3/hda1/g"
> 
> export TP=/tmp/losch.$$
> find . -type f -print0 |
>   xargs --null -n 1 -i+ bash -c "cp '+' $TP; \
> 	 sed -e 's/hda3/hda1/g' <$TP >$TP.1 && cp $TP.1 '+' "
> rm $TP
>
wenn schon so, dann
 find . -type f -print0 |
   xargs --null -n 1 -i+ bash -c \
       " sed -e 's/\<hda3\>/hda1/g' <'+' >'+.new' && mv '+.new' '+' "
aber zum glück gibt es ja gnu sed. :-)
 find . -type f -exec sed -i -e 's/\<hda3\>/hda1/g' {} \;
bzw.
 find . -type f -print0 |
   xargs --null sed -i -e 's/\<hda3\>/hda1/g'
wenn es um viele files geht (spart sed-aufrufe).

dann gibt es noch 'rpl' ...

> Bemerkungen:
> ===========
> [...]
> -)  + wird in (') eingeschlossen damit der Filename auch Sonderzeichen
>     enthalten darf
> 
zu dumm, wenn das sonderzeichen ein ' ist ...

gruß

-- 
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
--
Chaos, panic, and disorder - my work here is done.



Mehr Informationen über die Mailingliste linux-l