Diff, 오른쪽 파일에서 수정된 줄만 표시

Diff, 오른쪽 파일에서 수정된 줄만 표시

파일이 있고 수정된 줄만 출력하고 싶습니다 . 주변 컨텍스트는 없고 diff 오프셋 마커는 없습니다 a.bba

쉘 스크립트를 사용하여 이 작업을 어떻게 수행할 수 있습니까? (Python/Perl/PHP/... 제외)

sed와 awk가 허용되는 솔루션입니다.

지금 내가 하고 있는 일은 --suppress-common-lines를 사용하여 diff -y를 수행하고 공백 뒤의 올바른 부분을 얻기 위해 정규식 역참조를 사용하여 sed를 수행하는 것입니다. 더 좋은 방법이 있어야 겠죠?

Perl(금지됨)을 사용하면 다음과 같이 할 수 있습니다:

diff -y --suppress-common-lines -W $COLUMNS Eclipse_Preferences_Export_*.epf | perl -pe 's/.*\t|\t(.*)$/\1/g'

답변1

GNU와 함께확산제이 패키지는 diff파일 b에 수정되거나 새로 삽입된 줄만 출력합니다.

diff --unchanged-line-format= --old-line-format= --new-line-format='%L' a b

답변2

옵션을 하나 더 추가해야 합니다.

grep -vf file1 file2

답변3

awk 'FNR==NR{old[$0];next};!($0 in old)' old.txt new.txt

관련 정보