क्या यह जांचना संभव है कि दो फाइलों की पहली पंक्ति diff
(या कोई अन्य आसान बैश कमांड) का उपयोग कर बराबर है या नहीं?दो फाइलों के हिस्से की समानता की जांच
[j के लिए आम तौर पर प्रथम/अंतिम k
लाइनों की समानता की जाँच, या यहाँ तक कि लाइनों मैं]
क्या यह जांचना संभव है कि दो फाइलों की पहली पंक्ति diff
(या कोई अन्य आसान बैश कमांड) का उपयोग कर बराबर है या नहीं?दो फाइलों के हिस्से की समानता की जांच
[j के लिए आम तौर पर प्रथम/अंतिम k
लाइनों की समानता की जाँच, या यहाँ तक कि लाइनों मैं]
दो फ़ाइलों की पहली कश्मीर लाइनों diff के लिए:,
$ diff <(head -k file1) <(head -k file2)
Similary पिछले कश्मीर diff के लिए लाइनों:
$ diff <(tail -k file1) <(tail -k file2)
diff लाइनों के लिए
मैं जे के लिए:
diff <(sed -n 'i,jp' file1) <(sed -n 'i,jp' file2)
नीचे आदेश दोनों फ़ाइलों की पहली पंक्ति प्रदर्शित करता है।
krithika.450> head -1 temp1.txt temp4.txt
==> temp1.txt <==
Starting CXC <...> R5x BCMBIN (c) AB 2012
==> temp4.txt <==
Starting CXC <...> R5x BCMBIN (c) AB 2012
कमांड कमांड प्रदर्शित करता है यदि दोनों फाइलों में समान रेखा बराबर होती है।
krithika.451> head -1 temp4.txt temp1.txt | awk '{if(NR==2)p=$0;if(NR==5){q=$0;if(p==q)print "yes"}}'
yes
krithika.452>
मेरा समाधान कुत्ते के ऊपर की तुलना में मूल और शुरुआती लगता है, लेकिन यहां यह सब वही है!
echo "Comparing the first line from file $1 and $2 to see if they are the same."
FILE1=`head -n 1 $1`
FILE2=`head -n 1 $2`
echo $FILE1 > tempfile1.txt
echo $FILE2 > tempfile2.txt
if diff "tempfile1.txt" "tempfile2.txt"; then
echo Success
else
echo Fail
fi
मेरे समाधान patchutils कार्यक्रम संग्रह का filterdiff कार्यक्रम का उपयोग करता है। निम्न आदेश फ़ाइल संख्या 1 से फ़ाइल 2 और फ़ाइल 2 के बीच अंतर को दिखाता है:
diff -U 0 file1 file2 | filterdiff --lines j-k
'i, jp' में 'p' का अर्थ क्या है? –
'पी' का मतलब प्रिंट है। – dogbane
और समानता की जांच करने के लिए: 'अगर diff ...; फिर "बराबर" गूंजें; अन्य "बराबर नहीं" गूंजें; fi' –