HP-UX で再帰的な検索と置換を実行しようとしていますが、何かが足りません。
現時点で私が持っているもの:
find . -name "*.java" | xargs sed 's/foo/bar/g'
問題は、ファイルをインラインで置き換えていないことだとわかっています。他の OS には -i フラグがあると思いますが、私の HP-UX バージョンにはないようです。
助言がありますか?
答え1
不足している部分を次のように回避できます-i
(未テスト):
for i in `find . -name "*.java"`; do cp $i /tmp/$$; sed 's/foo/bar/g' < /tmp/$$ > $i;done
答え2
いつでも使えるed
find . -name "*.java" | while IFS= read -r file; do
ed "$file" <<ED_COMMANDS
%s/foo/bar/g
w
q
ED_COMMANDS
done