일부 패턴과 일치하는 모든 행에 주석을 달기

일부 패턴과 일치하는 모든 행에 주석을 달기

현재 디렉터리와 하위 디렉터리의 각 파일에 대해 "dlclose"가 포함된 모든 줄을 (재귀적으로) 주석 처리해야 합니다. 다양한 가이드를 통해 알아낸 내용을 고려하면 이것이 지금까지의 최선의 추측입니다.

grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g'

두 grep은 변경하려는 모든 파일을 성공적으로 찾았 sed지만 unterminated s command.

답변1

현재 위치에서 편집을 시도 중입니다(-i옵션)STDIN.

제거하다-i옵션은 쓸모가 없습니다.

메모:

명령 속도를 크게 높일 수 있습니다.두 번째 grep 피하기, 불필요한 디렉토리를 루트에서 제외

노력하다

grep -lIR --exclude-dir=.svn "dlclose" . | xargs sed -i bak 's/.*dlclose.*/\/\/&/g'  

또는

for f in $(grep -lIR --exclude-dir=.svn "dlclose" .)
do
   sed -i bak 's/.*dlclose.*/\/\/&/g' $f
done

관련 정보