यदि तुलना लाइन-बाय-लाइन स्वीकार्य है, तो निम्नलिखित बताएंगे कि कौन सी लाइनें फ़ाइल में दोहराई गई हैं text
और कितनी बार दिखाई देती हैं:
sort text | uniq -c | grep -vE '^\s*1 '
उदहारण के लिए,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
सामान्य यूनिक्स उपकरणों का उपयोग करके, इसे बढ़ाया जा सकता है, यह मानते हुए कि इनपुट परीक्षण प्रारूप पैरा-बाय-पैरा या वाक्य-दर-वाक्य तुलना के लिए बहुत जटिल नहीं है।
बार-बार परिच्छेद खोजना
मान लीजिए कि हमारी फ़ाइल text
में शामिल है:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
निम्न आदेश दिखाता है कि कौन से पैराग्राफ एक से अधिक बार दिखाई देते हैं:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
यह awk
पाठ को पैराग्राफ में विभाजित करने के लिए उपयोग करता है (रिक्त लाइनों द्वारा चित्रित) रिक्त स्थान के लिए नई कथानकों को परिवर्तित करता है और फिर डुप्लिकेट किए गए पैराग्राफ की गिनती के लिए सॉर्ट और अनइक करने के लिए आउटपुट, एक पैराग्राफ प्रति पैराग्राफ को पास करता है।
ऊपर परीक्षण किया गया था wtih GNU awk
। अन्य के लिए awk
, पैराग्राफ (रिकॉर्ड) सीमाओं के रूप में रिक्त लाइनों को परिभाषित करने की विधि भिन्न हो सकती है।
vimdiff
यहाँ आपके लिए क्या नहीं है?