<ก่อนหน้านี้ | Contents | ถัดไป>
มีเอกลักษณ์
เมื่อเทียบกับ ประเภทที่ มีเอกลักษณ์ โปรแกรมมีน้ำหนักเบา มีเอกลักษณ์ ทำงานที่ดูเหมือนเล็กน้อย เมื่อได้รับไฟล์ที่จัดเรียง (หรืออินพุตมาตรฐาน) ไฟล์จะลบบรรทัดที่ซ้ำกันและส่งผลไปยังเอาต์พุตมาตรฐาน มักใช้ร่วมกับ ประเภท เพื่อทำความสะอาดผลลัพธ์ของรายการที่ซ้ำกัน
เคล็ดลับ: ในขณะที่ มีเอกลักษณ์ เป็นเครื่องมือ Unix แบบดั้งเดิมที่มักใช้กับ ประเภท, เวอร์ชัน GNU ของ ประเภท รองรับ -u ตัวเลือกซึ่งลบรายการที่ซ้ำกันออกจากผลลัพธ์ที่เรียงลำดับ
มาสร้างไฟล์ข้อความเพื่อลองทำสิ่งนี้:
[me@linuxbox ~]$ cat > foo.txt a
bcbc
[me@linuxbox ~]$ cat > foo.txt a
bcbc
อย่าลืมพิมพ์ Ctrl-d เพื่อยุติอินพุตมาตรฐาน ตอนนี้ถ้าเราวิ่ง มีเอกลักษณ์ ในไฟล์ข้อความของเรา:
[me@linuxbox ~]$ ยูนิค foo.txt
abcabc
[me@linuxbox ~]$ ยูนิค foo.txt
abcabc
ผลลัพธ์ไม่ต่างจากไฟล์ต้นฉบับของเรา รายการที่ซ้ำกันไม่ได้ถูกลบออก สำหรับ
uniq เพื่อทำงาน ต้องเรียงลำดับอินพุตก่อน:
[me@linuxbox ~]$ จัดเรียง foo.txt | ยูนิค
abc
[me@linuxbox ~]$ จัดเรียง foo.txt | ยูนิค
abc
นี้เป็นเพราะ มีเอกลักษณ์ ลบเฉพาะบรรทัดที่ซ้ำกันซึ่งอยู่ติดกันเท่านั้น
uniq มีหลายทางเลือก ต่อไปนี้คือรายการทั่วไป:
ตาราง 20-2: Common uniq Options
คำอธิบายตัวเลือก
คำอธิบายตัวเลือก
-c แสดงรายการของบรรทัดที่ซ้ำกันนำหน้าด้วยจำนวนครั้งที่บรรทัดเกิดขึ้น
-d ส่งออกเฉพาะบรรทัดที่ซ้ำกัน แทนที่จะเป็นบรรทัดที่ไม่ซ้ำ
-f n ไม่สนใจ n ชั้นนำในแต่ละบรรทัด เขตข้อมูลจะถูกคั่นด้วยช่องว่างเมื่ออยู่ใน ประเภท; อย่างไรก็ตามไม่เหมือน ประเภท, มีเอกลักษณ์ ไม่มีตัวเลือกสำหรับการตั้งค่าตัวคั่นฟิลด์สำรอง
-i ละเว้นตัวพิมพ์ระหว่างการเปรียบเทียบบรรทัด
-s n ข้าม (ละเว้น) ผู้นำ n อักขระของแต่ละบรรทัด
-u ส่งออกเฉพาะบรรทัดที่ไม่ซ้ำ บรรทัดที่ซ้ำกันจะถูกละเว้น
มาดูกันค่ะ มีเอกลักษณ์ ใช้เพื่อรายงานจำนวนรายการที่ซ้ำกันที่พบในไฟล์ข้อความของเราโดยใช้ -c ตัวเลือก:
[me@linuxbox ~]$ จัดเรียง foo.txt | ยูนิค -c
2
2 ข
2 c
[me@linuxbox ~]$ จัดเรียง foo.txt | ยูนิค -c
2
2 ข
2 c