다른 파일의 내용에 포함되지 않은 출력의 모든 줄을 나열합니다.

다른 파일의 내용에 포함되지 않은 출력의 모든 줄을 나열합니다.

파일 디렉토리가 있습니다. 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"

관련 정보