หากการเปรียบเทียบแบบบรรทัดต่อบรรทัดเป็นที่ยอมรับแล้วสิ่งต่อไปนี้จะบอกว่าบรรทัดใดที่ซ้ำกันในไฟล์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
การใช้เครื่องมือ unix ปกตินี้สามารถขยายได้โดยสมมติว่ารูปแบบการทดสอบอินพุตนั้นไม่ซับซ้อนเกินไปสำหรับการเปรียบเทียบแบบย่อหน้าต่อย่อหน้าหรือประโยคต่อประโยค
การค้นหาย่อหน้าซ้ำ
สมมติว่าไฟล์ของเรา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
เพื่อแยกข้อความออกเป็นย่อหน้า (คั่นด้วยบรรทัดว่าง) แปลงบรรทัดใหม่เป็นช่องว่างจากนั้นผ่านเอาต์พุตหนึ่งบรรทัดต่อย่อหน้าเพื่อเรียงลำดับและ uniq สำหรับการนับย่อหน้าที่ซ้ำกัน
ดังกล่าวข้างต้นได้รับการทดสอบ wtih awk
GNU สำหรับคนอื่นawk
วิธีกำหนดบรรทัดว่างตามขอบเขตของย่อหน้า (บันทึก) อาจแตกต่างกัน
vimdiff
ได้ทำอะไรที่นี่