Tôi muốn sử dụng công cụ cli để so sánh tệp và cần số dòng trước dòng đầu ra để giúp tôi có thể chuyển sang chênh lệch dòng, vì tôi sử dụng công cụ hiểu nơi cần nhảy, nếu dòng bắt đầu như thế này :line-number: regular line contents
Vì vậy, tôi đã cố gắng diff
và đọc tài liệu có vẻ như có thể:
-D, --ifdef=NAME output merged file with `#ifdef NAME' diffs
--GTYPE-group-format=GFMT format GTYPE input groups with GFMT
--line-format=LFMT format all input lines with LFMT
--LTYPE-line-format=LFMT format LTYPE input lines with LFMT
These format options provide fine-grained control over the output
of diff, generalizing -D/--ifdef.
LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.
GFMT (only) may contain:
%< lines from FILE1
%> lines from FILE2
%= lines common to FILE1 and FILE2
%[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER
LETTERs are as follows for new group, lower case for old group:
F first line number
L last line number
N number of lines = L-F+1
E F-1
M L+1
%(A=B?T:E) if A equals B then T else E
LFMT (only) may contain:
%L contents of line
%l contents of line, excluding any trailing newline
%[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number
Both GFMT and LFMT may contain:
%% %
%c'C' the single character C
%c'\OOO' the character with octal code OOO
C the character C (other characters represent themselves)
nhưng không có ví dụ hoặc giải thích về việc chuyển đổi phức tạp này.
Có thể có được đầu ra như vậy từ diff
? Nếu vậy thì thế nào?
difflib
mô-đun với các tệp được lập chỉ mục trên mỗi dòng trong đối tượng danh sách) mà tôi không thể sử dụngdiff <(pipe buffer1) <(pipe buffer2)
với Python, như tôi đã lên kế hoạchdiff
. Bây giờ bạn đã cứu tôi :)