हेयर यू गो:
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 -c 'diff <(...) <(...)'