Date: Fri, 28 Jan 2005 06:07:59 +0000 From: markzero <mark@darklogik.org> To: freebsd-questions@freebsd.org Subject: Re: One-line global string replace in all files with sed (or awk?) Message-ID: <20050128060759.GA9405@logik.ath.cx> In-Reply-To: <1098984237.20050128065616@wanadoo.fr> References: <1098984237.20050128065616@wanadoo.fr>
next in thread | previous in thread | raw e-mail | index | archive | help
--tThc/1wpZn/ma/RB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable > My thanks to all who replied. I ended up using this form (I don't > recall who suggested it): >=20 > find . -type f | xargs sed -i '' -e 's/foo/bar/g' >=20 > One problem, though: It appears that sed touches every file, resetting > the last modification time, even if it didn't actually change anything. > This reset the last modification dates for every file on my site, which > wasn't much fun. Is there another command I could put between find and > xargs that would filter only the names of files containing the string? > (grep would do it, but grep outputs the lines found to stdout, so that > won't do.) >=20 Completely off the top of my head: #!/bin/sh =20 for i in `find $PWD -type f`; =20 do grep foo $i 1>/dev/null; if [ $? -ne 0 ] then #do something with sed here fi done; Not *exactly* a one liner but it *could* be if you want to make it less readable... :) Mark --=20 PGP: http://www.darklogik.org/pub/pgp/pgp.txt B776 43DC 8A5D EAF9 2126 9A67 A7DA 390F DEFF 9DD1 --tThc/1wpZn/ma/RB Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (FreeBSD) iQIVAwUBQfnWvqfaOQ/e/53RAQIjjQ/+L8WLCjks1x/mk/RmyJ/82P/FKRwuoV25 5NK9O7xhFZW2bwVDpA9lIGOuTthSUQPVg7uhpGTs4FNGLk07MaKAGUX5JphtXIlf sY9ceY1Z8q/RRTxc59AgnhC+0WmTZmf55PBzhX2ApfNou4gRd/p3ehxJEwyhQ4Nh 862mCKalAib47QEqtg9IsyaRpG0tIkUs6Q/IA/taVq9wEuLFMs1ivyYg4FLg5yA4 pE9f3Na1+lAxERCFjgI1nNystbR001v+PiwoMvdKedRIR4IqI0JTJ6iUC1OVaQnc W2h0sVcUO2ItVBOaRjO6SoD0x0iahpf2IuZ317B28h8Vr1ktdvX4DYxJGc5YwskV 8KOBeGgG2/yF0MHLMfcLIRUNH89Xoy+nukrfiZIv/m1qf/n/YfvDq+wnUSAMvKQY LxazWcN4/mzOYEicKVP9YE/m7JtdrJMeiCcMxkACvYW/ImF1Qj9rh1wJZTn42jPj AfiQt1tSkDRUaKW+rxLakACglqFEBBPZ9HkPlEJEgGhfUTRS5iS+4SPy7/Ffp496 S6bVLtRsTxdF4MPwXhfclg3HhsMcFoBTOViYd57/rYi3tWx94JCwrw/s+seRM56k jcsD4WBw9Z8XEjeVTWunIeLalbyMMZ+yGOY1+XQrfDA/hM/aQGssiC2MlB1oPI/O 3LaqDdIniNA= =hYSH -----END PGP SIGNATURE----- --tThc/1wpZn/ma/RB--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050128060759.GA9405>