저는 쉘 스크립팅을 처음 사용하고 있으며 Korn 쉘 스크립트를 작성하고 있습니다.다중 grep 명령이있는 IF에서 NOT 연산자 사용
내 목표는 fileA.txt
4 별도의 파일 (의 그들 fileA.txt
, fileB.txt
, fileC.txt
및 fileD.txt
를 부르 자)에 각 행을 검색하는 것입니다. 다른 파일의 네 파일 모두에서 찾을 수없는 fileA.txt
의 행에 대해 "찾을 수 없음"을 인쇄해야합니다.
다음 If 문을 작성했습니다. & &을 사용하는 4 개의 grep 명령을 결합하려고 시도하고 있으며 논리적 인 Not (!)를 수행하기 때문에 4 개의 파일 중 어느 것도 찾지 못한 행만 필요합니다.
for i in $(<fileA.txt);
do
if !((grep -q $i fileB.txt) && (grep -q $i fileB.txt) && (grep -q $i fileC.txt) && (grep -q $i fileD.txt)); then
print "$i not found in either of 4 files"
fi
done
내가 구문에 분명히 틀린 점이 있지만 쉘 스크립팅의 초보자라는 것을 알고 있습니다. 알아낼 수 없습니다.
fileB.txt를 두 번 확인했거나 fileA.txt를 의미 했습니까 ('i'는 fileA에서 찾을 수 있으므로 의미가 없습니다)? – chepner