비교 및 병합

비교 및 병합

file1.txt와 file2.txt라는 두 개의 파일이 있습니다.

File1.txt에는 다음 내용이 포함되어 있습니다.

SDGIQEGFLDCAJNHCKJHGAIUFCHLKQAJDCGQYFHCLKAH
`1531280O94E1-09E4=1-203E]O12-9E81098ER13
kjsghdjigqiugtfdiasjclkkahfoiuqhfok;jasdl
shdashlkcdkdalfjvhadjfk;asljkfcjda;kflkdjf
kahfdahfkadlkfkl;adj;fljad;hf;jda;fkdfljaklfh

File2.txt에는 다음 내용이 포함되어 있습니다.

SDGIQEGFLDCAJNHCKJHGAIUFCHLKQAJDCGQYFHCLKAH
`1531280O94E1-09E4=1-203E]O12-9E81098ER13
kjsghdjigqiugtfdiasjclkkahfoiuqhfok;jasdl

file1.txt와 file2.txt를 한 줄씩 비교하고 차이점이 발견되면 해당 줄을 file2.txt 자체에 추가하고 싶습니다.

예상 출력

File2.txt는 다음과 같아야 합니다.

SDGIQEGFLDCAJNHCKJHGAIUFCHLKQAJDCGQYFHCLKAH
`1531280O94E1-09E4=1-203E]O12-9E81098ER13
kjsghdjigqiugtfdiasjclkkahfoiuqhfok;jasdl
shdashlkcdkdalfjvhadjfk;asljkfcjda;kflkdjf
kahfdahfkadlkfkl;adj;fljad;hf;jda;fkdfljaklfh

참고: 모든 내용이 아닌 file1.txt의 차이점만 병합하고 싶습니다.

쉘 스크립트를 사용하여 이를 수행할 수 있습니까?

답변1

의 끝에만 추가하려면 에 있지만 에 없는 file2.txt줄을 추출하여 에 추가 하면 됩니다 .file1file2file2

comm -23 file1.txt file2.txt >> file2.txt

답변2

간단한 join명령:

join -a1 --nocheck-order file1.txt file2.txt
  • a FILENUM- 파일에서 페어링할 수 없는 줄도 인쇄합니다.FILENUM

산출:

SDGIQEGFLDCAJNHCKJHGAIUFCHLKQAJDCGQYFHCLKAH
`1531280O94E1-09E4=1-203E]O12-9E81098ER13
kjsghdjigqiugtfdiasjclkkahfoiuqhfok;jasdl
shdashlkcdkdalfjvhadjfk;asljkfcjda;kflkdjf
kahfdahfkadlkfkl;adj;fljad;hf;jda;fkdfljaklfh

답변3

첫 번째 테스트:

{ cat file2; grep -Fxvf file2 file1; }
SDGIQEGFLDCAJNHCKJHGAIUFCHLKQAJDCGQYFHCLKAH
`1531280O94E1-09E4=1-203E]O12-9E81098ER13
kjsghdjigqiugtfdiasjclkkahfoiuqhfok;jasdl
shdashlkcdkdalfjvhadjfk;asljkfcjda;kflkdjf
kahfdahfkadlkfkl;adj;fljad;hf;jda;fkdfljaklfh

위 사항이 요구 사항을 충족하는지 확인한 후 출력을 file2 자체로 리디렉션합니다.

grep -Fxvf file2 file1 >> file2

관련 정보