ไปเลย:
diff <(head -n 1 file1) <(head -n 1 file2)
(สิ่งนี้จะไม่คืนสิ่งใดเลย)
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
คุณสามารถรวมมันเข้าไปในสคริปต์เพื่อทำสิ่งที่คุณพูดถึง
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
หากต้องการใช้เพียงทำให้สคริปต์ที่ใช้งานได้chmod +x nameofscript.sh
และจากนั้นดำเนินการ./nameofscript.sh ~/file1 ~/Docs/file2
ซึ่งจะทำให้ # บรรทัดเริ่มต้นเป็น 1 หากคุณต้องการเพิ่มหมายเลขต่อท้ายคำสั่งนั้น
(หรือคุณสามารถสลับในสคริปต์ของคุณด้วย -f1 file1 -f2 file2 -n 1 แต่ฉันไม่จำส่วนบนสุดของหัวของคำสั่งกรณีนั้น)
head
ผลตอบแทนที่ได้จากจุดเริ่มต้น # -n
ของเส้นตามข้อเสนอแนะ หากคุณต้องการย้อนกลับมันจะเป็นtail -n ${numLines}
ไปตามนั้น
แก้ไข 5/10/16:
นี่คือเฉพาะสำหรับ Bash (และเชลล์ที่เข้ากันได้) หากคุณต้องการใช้สิ่งนี้จากสิ่งอื่น:
bash -c 'diff <(...) <(...)'