저는 약 1000개의 입력 파일에 대해 동일한 작업을 실행하고 있습니다. 그 중 약 10%는 실패하지만 이를 확인하는 유일한 방법은 출력 파일을 스크롤하여 선언되었는지 확인하는 것입니다 . 시간을 절약하려면 명령을 completed without error
사용하는 방법이 있습니다.grep
oxxxxx
출력 파일(이름이 지정된)로만 디렉터리에서 구체적으로 검색합니다.- 해당 문구가 포함되지 않은 분들을 위해
completed without error
, oxxxx
터미널 창에 이러한 파일을 나열합니다.
감사합니다!
답변1
사용GNU grep-L
확장하다:
grep -L 'completed without error' o*
-L, --file이 일치하지 않습니다.
일반 출력을 억제합니다. 대신 일반적으로 인쇄되지 않는 각 입력 파일의 이름을 인쇄합니다. 검색은 첫 번째 일치에서 중지됩니다.
GNU grep이 없는 경우:
for f in o*; do grep -q "completed without error" "$f" || printf "%s\n" "$f"; done
답변2
grep -R <pattern> -L *
-R recursively search
-L files without match
예:
touch $(seq 1 100) # create 100 files
echo "testing" > 28
echo "testing" > 32
echo "testing" > 10
echo "testing" > 15
echo "testing" > 95
echo "testing" > 72
echo "testing" > 34
echo "testing" > 25 # eight files with pattern
$ grep -l test *|wc -l # files that contains pattern
8
$ grep -L test *|wc -l # files that doesn't contain pattern
92