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

관련 정보