2011-12-02 38 views
13

Tôi đang sử dụng khác với các tùy chọn -y--suppress-common-lines và đầu ra gần như hoàn hảo ngoại trừ tôi muốn xem số dòng của các thay đổi.Có thể hiển thị số dòng trong đầu ra diff cạnh nhau không?

Ví dụ:

file1:

line a 
line b 
line c 

file2:

line a 
line B 
line c 
line d 

lệnh và đầu ra:

$ diff -y --suppress-common-lines file1 file2 
line b              | line B 
                   > line d 

là sự kết hợp này các tùy chọn có thể với diff hay tôi nee d công cụ khác?

Trả lời

9

Rất tiếc, tùy chọn -y sử dụng kiểu định dạng nội bộ (cũng như --LFMT-line-format), bạn không thể tích lũy lệnh định dạng với -y. Bạn không thể lấy thông số định dạng mà -y làm, vì vậy bạn không thể giải quyết trực tiếp với diff (Tôi đã kiểm tra mã nguồn khác 3.2).

Bạn cần sử dụng một công cụ khác.

+0

Tôi khá chắc chắn về điều này nhưng cảm ơn bạn đã xác nhận! Bây giờ để tìm một công cụ khác ... –

0

Nếu bạn luôn được so sánh dòng với số dòng tương tự, bạn có thể sử dụng một cái gì đó như thế này:

$ awk 'NR==FNR{a[NR]=$0;next}{x=a[FNR];if($0!=x)printf("%s;%s;%s\n",FNR,x,$0)}' file1 file2 
327;有る;ある 
431;先ず;まず 
543;連れて行く;連れていく 
719;幾ら;いくら 
1318;込む;混む 
1415;かわいそう;可哀相 
1713;だんだん;段々 
2491;大みそか;大晦日 
4120;もうける;儲ける 
4510;ほほ笑む;微笑む 
4512;もうかる;儲かる 
5727;剥げる;剝げる 

FNR (số hồ sơ trong hồ sơ) là bằng NR khi awk đang xử lý các tập tin đầu tiên. Câu lệnh next bỏ qua bản ghi tiếp theo.

Các vấn đề liên quan