두 개의 텍스트 파일을 비교하고 그 차이점을 찾아야하는 요구 사항이 있습니다. 기본적으로 배치 작업에 의해 처리 될 입력 파일 (input.txt)이 있고 배치 작업이 성공적으로 실행 된 출력 (successful.txt)이 기록됩니다.
간단히 말해서 input.txt와 successful.txt (input.txt-successful.txt)의 차이점을 찾아야하고 findstr을 사용할 생각이었습니다. 괜찮아 보이지만 한 부분을 이해하지 못합니다. 항상 출력에 내 input.txt의 마지막 줄이 포함됩니다. 아래 예에서 볼 수 있습니다. 내 input.txt의 마지막 줄 뒤에 선행 공백이나 줄 바꿈이 없습니다.
아래 예 server1,db1
에서 두 파일 모두에 해당 줄 이 있지만 여전히 출력에 나열되어 있음을 알 수 있습니다. (항상 input.txt의 마지막 줄입니다)
D:\Scripts\dummy>type input.txt
server2,db2
server3,db3
server10,db10
server4,db4
server1,db11
server10,schema11
host1,sch2
host11,sql2
host11,sql3
server1,db1
D:\Scripts\dummy>type successful.txt
server1,db1
server2,db2
server3,db3
server4,db4
server10,db10
host1,sch2
host11,sql2
host11,sql3
D:\Scripts\dummy>findstr /vixg:successful.txt input.txt
server1,db11
server10,schema11
server1,db1
내가 무엇을 잘못하고 있지?
건배 G
의 마지막 줄 뒤의 줄 바꿈을 제거하여 결과를 재현 할 수 input.txt
있으므로 솔루션 1은 끝에 줄 바꿈을 추가하는 것입니다 input.txt
. input.txt
터미널 개행이 없다고 말하는 것처럼 보이기 때문에 하나를 추가하면 문제가 해결됩니다. findstr은 줄 바꿈으로 끝나는 줄에서 작동하기 때문에 예상대로 작동합니다.
솔루션 2는
type input.txt|findstr /vixg:successful.txt
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다