파일 디렉토리가 있습니다. content.txt
다른 파일()의 내용에 어떤 파일이 나열되어 있지 않은지 확인하고 싶습니다 .
content.txt
파일 이름뿐만 아니라 전후의 일부 텍스트도 포함하므로 하위 문자열 검색을 찾고 있습니다.
예:
$ ls
./file1 ./file2 ./file3
$ cat /some/path/content.txt
name: file2 (y)
age: file6 (z)
height: file9 (x)
나는 가상의 스크립트가 다음을 반환하길 원합니다:
file1
file3
현재 작동하지 않는 솔루션은 find .
모든 파일을 나열한 다음 sed 교체를 사용하여 폴더 이름을 바꾼 다음 grep을 시도하여 파일에 있는지 확인하는 것입니다.
find . | sed 's|MyFolder/||' | xargs -I {} -0 grep {} /some/path/content.txt
이는 비효율적인 것 같고 더 이상 진행하는 방법을 모르겠습니다. grep을 사용하고 종료 코드에 대해 xargs를 확인하는 것을 고려했지만 -qs
각 파일을 확인하는 대신 출력만 생성됩니다.
find . | sed 's|MyFolder/||' | (xargs -I {} -0 grep {} /some/path/content.txt) && echo "true" || echo "false"