【1269:13】子ディレクトリのなかまで一発置換
- 1 名前:名無しさん :2000/10/18(水) 00:43
- シェルスクリプトで
指定ディレクトリとその中に存在する子ディレクトリの中すべて に存在するファイル中のhogehogeをfugafugaに書き換える 記述を教えてください。 どうかよろしくお願いいたします。
- 4 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 01:09
- 以下の foo.sh を作って
cd `dirname $1` mv hogehoge harehare % find -type f -name 'hogehoge' -exec sh ./foo.sh {} \; でどう?
- 5 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 01:10
- つーか引数で渡された1ファイルだけ書き換えるshell script作って
find . -exec update.sh {} \; とかすりゃいいじゃん。
- 6 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 01:13
- なんで新スレ立てるの?
- 7 名前:名無しさん :2000/10/18(水) 01:14
- >ファイル中のhogehogeをfugafuga
いや、、ファイル中にある hogehogeという文字列を fugafugaに 書き換えたいのだ。。 引き続きよろしくお願いいたします。
- 8 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 01:22
- sed
- 9 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 01:33
- $ cat filename | perl -e "while(<ARGV>){s/hogehoge/fugafuga/g;print;}" | more
- 10 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 02:02
- % cat update.sh
#! /bin/sh -f from='harehare' to='harehare' if grep -q $from $1 ; then mv $1 $1.save sed /$from/$to/g $1.save > $1 fi % find /home/who/somewhere -type f -exec ./update.sh {} \;
- 11 名前:harehore :2000/10/18(水) 02:12
- find rfc/ -name 'rfc*.txt' |xargs perl -i.bak -pe '1 while s/rfc//i'
- 12 名前:harehore :2000/10/18(水) 02:21
- ちょこっと改良しました。
find /path -type f |xargs perl -i.bak -npe '1 while s/hare/hore/;'
- 13 名前:名無しさん@お腹いっぱい。 :2000/10/18(水) 08:06
- for f in `find / -type f`; do sed 's/hoge/fuga/g' $f > $f.tmp; mv $f.tmp $f; done
じゃだめですか? 只今 Windows で w3m のテスト中。なかなか快適ヽ(´ー`)ノ
|