"ack-grep"에서 "찾기"를 위한 "-exec"와 같은 옵션이 있습니까?

"ack-grep"에서 "찾기"를 위한 "-exec"와 같은 옵션이 있습니까?

string 을 포함하는 모든 텍스트를 삭제하고 싶습니다 foo.

모든 파일을 나열할 수 있지만 옵션 ack-grep foo처럼 모든 파일을 삭제하는 방법을 찾을 수 없습니다 .-exec rm {}find

특정 문자열이 포함된 모든 파일을 삭제하는 방법은 무엇입니까?

답변1

GNU 사용 xargs:

ack -l --print0 foo | xargs -r0 rm --

ack --print0와 xargs'는 -0ack와 xargs가 쓰기 및 읽기를 위한 구분 기호로 NUL을 사용하도록 하여 올바른 파일 이름 처리를 보장합니다. 이것이 없으면 xargs더 넓은 범위의 문자가 구분 기호로 허용됩니다.

답변2

파일 이름만 나열하는 grep 및 ack와 함께 -l 옵션을 사용할 수 있습니다.

grep -l --null foo ./* | xargs -r0 rm

또는:

ack -l --print0 foo ./* | xargs -r0 rm --

관련 정보