파일이 a
있고 에서 복제 된 이후 변경된 b
행을 출력하고 싶습니다 . 수정 된 라인, 주변 컨텍스트, 차이 오프셋 마크가 없습니다.b
a
쉘 스크립팅을 사용하여 어떻게 할 수 있습니까? (파이썬 / 펄 / PHP / … 없음)
Sed와 awk는 수용 가능한 솔루션입니다.
현재 내가하고있는 일은 –suppress-common-lines와 diff -y이며 정규 표현식 역 참조를 사용하여 공백 뒤에 올바른 부분을 가져 오는 sed입니다. 더 좋은 방법이 있어야합니까?
펄 (금지 된)을 사용하여 다음과 같이합니다 :
diff -y --suppress-common-lines -W $COLUMNS Eclipse_Preferences_Export_*.epf | perl -pe 's/.*\t|\t(.*)$/\1/g'
답변
GNU diffutils 패키지를 사용하면 diff
파일 b에서 수정되거나 새로 삽입 된 행만 출력됩니다.
diff --unchanged-line-format= --old-line-format= --new-line-format='%L' a b
답변
옵션을 하나 더 추가해야합니다.
grep -vf file1 file2
답변
awk 'FNR==NR{old[$0];next};!($0 in old)' old.txt new.txt