Score:3

วิธีลบเฉพาะบรรทัดที่ซ้ำกันหากอยู่ติดกันในไฟล์

ธง in
Cas

สมมติว่าฉันมีไฟล์ต่อไปนี้:

$ cat test.txt
ก
-----
ข
-----
-----
ค
-----
-----
-----
ง
-----
อี
-----
-----

ตอนนี้ฉันต้องการลบทั้งหมด -----แต่ถ้าพวกเขากำลังทำซ้ำตามกัน ดังนั้นผลลัพธ์ควรมีลักษณะดังนี้:

ก
-----
ข
-----
ค
-----
ง
-----
อี
-----

ฉันเหนื่อย grep -Pvz -- "-----\n-----"แต่นั่นไม่ได้ผล

Score:10
ธง hr

นั่นคือสิ่งที่ ยูนิค คำสั่งถูกสร้างขึ้นสำหรับ:

ชื่อ
       uniq - รายงานหรือละเว้นบรรทัดที่ซ้ำกัน

เรื่องย่อ
       uniq [ตัวเลือก]... [อินพุต [เอาต์พุต]]

คำอธิบาย
       กรองบรรทัดการจับคู่ที่อยู่ติดกันจาก INPUT (หรืออินพุตมาตรฐาน) เขียนไปยัง OUTPUT
       (หรือเอาต์พุตมาตรฐาน)

       หากไม่มีตัวเลือก เส้นที่ตรงกันจะถูกรวมเข้ากับเหตุการณ์แรก

ดังนั้น

$uniq test.txt 
ก
-----
ข
-----
ค
-----
ง
-----
อี
-----

หรือคุณสามารถใช้ sed one-liner นี้ก็ได้ 69.ลบบรรทัดที่ซ้ำกันและต่อเนื่องกันออกจากไฟล์ (เลียนแบบ "uniq") จาก อธิบาย Sed One-Liners ส่วนที่ III: การลบบางบรรทัดแบบเลือกและการใช้งานพิเศษ

sed '$!N; /^\(.*\)\n\1$/!P; D' test.txt

ซึ่งอาจจะเป็นที่ต้องการหากคุณต้องการแก้ไข ทดสอบ. txt ในสถานที่ (โดยการเพิ่ม -ผม หรือ --ในสถานที่ ตัวเลือก).

Score:0
ธง ai

แค่ทำ ชื่อไฟล์ uniq.txt เนื่องจากชื่อระบุว่าเหลือเฉพาะบรรทัดที่ไม่ซ้ำกันและการทำซ้ำจะถูกรวมเข้าด้วยกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา