Ở đây bạn đi:
diff <(head -n 1 file1) <(head -n 1 file2)
(điều này sẽ không trả lại bất cứ điều gì như vậy).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Bạn có thể kết hợp nó vào một kịch bản để làm những điều bạn đề cập.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Để sử dụng điều đó, chỉ cần làm cho tập lệnh có thể thực thi được chmod +x nameofscript.sh
và sau đó thực thi, ./nameofscript.sh ~/file1 ~/Docs/file2
Điều đó để lại số dòng mặc định là 1, nếu bạn muốn thêm một số vào cuối lệnh đó.
.
head
trả về từ đầu # dòng theo đề xuất của -n
. Nếu bạn muốn làm ngược lại, nó sẽ là tail -n ${numLines}
(đuôi làm từ cuối trở lại số dòng).
Chỉnh sửa 5/10/16:
Điều này là đặc trưng cho Bash (và shell tương thích). Nếu bạn cần sử dụng cái này từ thứ khác:
bash -c 'diff <(...) <(...)'