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
줄을 추출하여 에 추가 하면 됩니다 .file1
file2
file2
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