첨부 파일이라는 단어가없는 파일을 찾으려면이 grep 명령이 있습니다.
grep -L -- Attachments *
해당 명령에서 출력되는 모든 파일을 이동하고 싶습니다. bash에서 어떻게합니까? 파이프를 사용합니까? 완전한 스크립트에서 더 현명한 if / then 문을 사용합니까?
첨부 파일이라는 단어가없는 파일을 찾으려면이 grep 명령이 있습니다.
grep -L -- Attachments *
해당 명령에서 출력되는 모든 파일을 이동하고 싶습니다. bash에서 어떻게합니까? 파이프를 사용합니까? 완전한 스크립트에서 더 현명한 if / then 문을 사용합니까?
답변:
당신이하고 싶은 것은 파이프와 grep
s -Z
옵션을 사용하는 것입니다 :
GNU grep 및 mv 사용
grep -LZ -- Attachments * | xargs -0 mv -t target_directory
-Z
과 함께 xargs -0
특수 문자 핸들이있는 파일 이름.
BSD grep 및 mv 사용 (MacOS X 에서처럼)
grep -L --null -- Attachments * |
while IFS= read -r -d "" file; do
mv "./$file" target_directory
done
BSD에서 grep -Z
수단 압축 해제 , grep --null
BSD와 GNU 모두에서 작동합니다. BSD mv
에는 옵션이 없다-t