[맥북 / macOS] diff 커맨드를 통해 텍스트파일 다른 부분 골라내기

분명 90프로 이상이 비슷하지만 10프로 이하의 다른 부분이 있는 텍스트 중 “그 다른 부분”을 골라내고자 하는 작업 관련하여, 유용한 팁을 공유 드립니다.


diff 커맨드를 통해 텍스트파일 다른 부분 골라내기

아래 그림은 예시로 만든 텍스트 파일이기 때문에 그 내용이 길지가 않고, 구별하는게 쉽지가 않습니다. 하지만! 라인수가 1000줄 혹은 10000줄이 넘어가는 긴 텍스트 파일에서 다른 부분을 골라내는 것은 쉽지가 않습니다. 터미널의 diff 커맨드를 활용하면 아주 쉽게 구별해 낼 수 있습니다.

우선, Spotlight(cmd + space) > terminal로 터미널 앱을 실행합니다.

두 파일이 같은 디렉토리 안에 있다고 가정했을 때, 아래와 같은 문법을 사용하시면 됩니다.

diff -w (file1) (file2)

위에 보여드린 2개의 텍스트 파일로 diff command를 실행시켜보면 아래와 같이 나오게 되는데 몇가지 중요한 부분만 집어보면.

  • (파일1의 라인)c(파일2의 라인) : change를 의미하며, 변경되었다는 뜻
  • (파일1의 라인)a(파일2의 라인) : add를 의미하며, 파일1의 명시된 라인 이후 파일2의 라인을 추가해야 동일해진다는 뜻
  • (파일1의 라인)d(파일2의 라인) : delete를 의미하며, 파일의1의 명시된 라인이 삭제되어야 파일2와 같아진다는 뜻
  • > :파일 2에 해당
  • < : 파일 1에 해당
~/Test (513) $diff -w a.txt b.txt //diff 커맨드 실행
1c1 //파일 1의 라인 1은 파일 2의 라인 2에서 바뀜(Change)
< File a.txt 
---
> File b.txt
2a3 //파일 1의 라인 2 이후에 파일 2의 라인 3번을 추가해야함(Add)
> This is an additional sentence.
\ No newline at end of file
~/Test (514) $

사실 위의 내용을 다 이해하고 있지 않더라도, 아래 내용 파일과 비교해서 위 결과값을 비교해보시면 직관적으로 바로 이해하실 수 있으리라 생각됩니다. 자세한 내용이 궁금하시면 아래에 참고 부분에 링크를 걸어두었으니 참고 바랍니다.


참고