ในลินุกซ์ผมสามารถ grep grep mySearchString myFile.txt
สตริงจากไฟล์โดยใช้ ฉันจะได้รับเฉพาะผลลัพท์ที่ไม่ซ้ำได้อย่างไร
ในลินุกซ์ผมสามารถ grep grep mySearchString myFile.txt
สตริงจากไฟล์โดยใช้ ฉันจะได้รับเฉพาะผลลัพท์ที่ไม่ซ้ำได้อย่างไร
คำตอบ:
คุณสามารถทำสิ่งนี้ได้ด้วยsort
และuniq
ยูทิลิตี้
ตัวอย่าง:
[john @ awesome ~] $ echo -e "ทดสอบ \ ntest \ ntest \ nantest ทดสอบ \ ntest" ทดสอบ ทดสอบ ทดสอบ การทดสอบอื่น ทดสอบ [john @ awesome ~] $ echo -e "ทดสอบ \ ntest \ ntest \ nantest ทดสอบ \ ntest" | จัดเรียง | UNIQ การทดสอบอื่น ทดสอบ
ขึ้นอยู่กับข้อมูลที่คุณอาจต้องการใช้สวิตช์บางตัวเช่นกัน
sort -u
sort | uniq
มันบันทึกกระบวนการลด I / O ทั้งหมดและลดจำนวนการเปรียบเทียบทั้งหมดที่ต้องทำ
คุณสามารถใช้ได้:
grep -rohP "(mySearchString)" . | sort -u
-r: เรียกซ้ำ
-o: พิมพ์ส่วนที่ตรงกันของข้อความเท่านั้น
-h: อย่าพิมพ์ชื่อไฟล์
-P: สไตล์ Perl regex (คุณอาจใช้ -E แทนขึ้นอยู่กับกรณีของคุณ)
sort -u
ดีกว่าsort | uniq
ที่ @Chris Johnsen ชี้ให้เห็น
sort
ก่อนuniq
ในกรณีที่ข้อมูลไม่ได้รับคำสั่ง มิฉะนั้นuniq
จะไม่ทำงานอย่างสมบูรณ์