그누 차이

그누 차이

a와 b라는 두 개의 파일이 있습니다. 이 두 파일을 비교하고 파일 이름과 함께 세 번째 파일의 차이점을 확인하고 싶습니다. 누구든지 간단한 명령으로 나를 도울 수 있습니까?

답변1

diff a b > differences일을 해야 합니다. 두 파일의 차이점은 파일에 저장됩니다 differences.

답변2

당신은 그것을 사용할 수 있습니다grep차이점을 확인하는 함수(file3은 출력 파일입니다):

grep -Fxvf file1 file2 > file3

표지판은 어디에 있습니까?

  • -F: PATTERN을 줄 바꿈으로 구분된 고정된 문자열 목록으로 해석합니다. 이 중 하나가 일치합니다.
  • -x: 전체 행과 정확히 일치하는 일치 항목만 선택합니다.
  • -v: 일치의 의미를 반전시키고 일치하지 않는 행을 선택합니다.
  • -fFILE: FILE에서 한 줄에 하나씩 패턴을 가져옵니다. 빈 파일에는 패턴이 0개 포함되어 있으므로 일치하는 항목이 없습니다.

플래그 사용 -n: 출력의 각 줄 앞에 입력 파일의 줄 번호를 붙입니다.

grep -n -Fxvf file1 file2 > file3

답변3

그누 차이

gnu diff가 있는 경우(diffutils에서 diff (GNU diffutils) 3.3).

diff --old-line-format='old %L' --new-line-format='new %L' --unchanged-group-format='' u v

old    PV Name                     /dev/dsk/c0t4d0
new    PV Name                     /dev/dsk/c99t4d0

(파일로 리디렉션하는 방법은 아래에 나와 있습니다.)

awk의 기본 차이점

기본 diff에서는 awk를 사용하여 '<' 및 '>'를 구문 분석합니다.

diff u v
178c178
<    PV Name                     /dev/dsk/c0t4d0
---
>    PV Name                     /dev/dsk/c99t4d0

awk를 사용하여 파일 이름을 입력하세요.

 diff u v | awk '$1 == "<" { printf "u: %s\n",$0; next ; } 
            $1 == ">" { printf "v: %s\n",$0 ; next ; } 
            { print;} '

178c178
u: <    PV Name                     /dev/dsk/c0t4d0
---
v: >    PV Name                     /dev/dsk/c99t4d0

(가독성을 위해 구분된 행)

이제 diff 파일에 저장하세요.

diff u v | awk '$1 == "<" { printf "u: %s\n",$0; next ; } $1 == ">" { printf "v: %s\n",$0 ; next ; } { print;} ' > differences

관련 정보