Unix HP-UX ksh 遞迴尋找與替換

Unix HP-UX ksh 遞迴尋找與替換

我正在嘗試在 HP-UX 中進行遞歸查找和替換,但缺少一些內容。

我現在擁有的:

find . -name "*.java" | xargs sed 's/foo/bar/g'

我知道問題是它沒有替換內聯文件。我相信在其他作業系統上有一個 -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

相關內容