diff 결과가 나올 때 열 상단에 파일명을 출력할 수 있는 방법이 있는지 궁금합니다. 지금까지는 이해합니다.
diff -a --suppress-common-lines -y output_main.txt output_compare.txt
XXX Version X.X(X) | YYY Version Y.Y(Y)
ip address 10.10.88.50 255.255.255.254 | ip address 10.10.89.50 255.255.255.254
작동하는 것은 다음과 같습니다.
diff -a --suppress-common-lines -y output_main.txt output_compare.txt
output_main.txt output_compare.txt
======================== =======================
XXX Version X.X(X) | YYY Version Y.Y(Y)
ip address 10.10.88.50 255.255.255.254 | ip address 10.10.89.50 255.255.255.254
답변1
귀하의 요청과 비슷한 내용이 있습니다.
$ diff -c output_main.txt output_compare.txt
*** output_main.txt 2019-11-02 16:46:28.678377910 +0100
--- output_compare.txt 2019-11-02 16:46:27.770423548 +0100
***************
*** 1,2 ****
! XXX Version X.X(X)
! ip address 10.10.88.50 255.255.255.254
--- 1,2 ----
! YYY Version Y.Y(Y)
! ip address 10.10.89.50 255.255.255.254
답변2
조금 이상하지만 원하는대로 작동합니다 ...
$ diff -a -y --suppress-common-lines <(echo output_main.txt; cat output_main.txt) <(echo output_compare.txt; cat output_compare.txt) | sed 2i=============================================================================
output_main.txt | output_compare.txt
===============================================================================
XXX Version X.X(X) | YYY Version Y.Y(Y)
ip address 10.10.88.50 255.255.255.254 | ip address 10.10.89.50 255.255.255.254
답변3
나는 새로운 기능을 만들 것입니다 :
mydiff(){
printf '%.30s%65s\n' "$1" "$2" "================" "===================";
command diff -y "$1" "$2"
}
이 값은 65
다음 사실에서 비롯됩니다.
'--side-by-side'('-y') 옵션은 병렬 형식을 선택합니다. 병렬 출력 라인은 두 개의 입력 라인으로 구성되기 때문에 출력은 평소보다 넓습니다. 일반적으로 130개의 인쇄 열은 기존 프린터 라인에 맞습니다.
옵션을 통해 열 너비를 변경할 수 있습니다 -W
.
산출:
$ mydiff output_main.txt output_compare.txt
output_main.txt output_compare.txt
================ ===================
XXX Version X.X(X) | YYY Version Y.Y(Y)
ip address 10.10.88.50 255.255.255.254 | ip address 10.10.89.50 255.255.255.254