Unix HP-UX ksh 再帰検索と置換

Unix HP-UX ksh 再帰検索と置換

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

関連情報