Score:0

ฉันจะแยกไฟล์สองไฟล์โดยลบบรรทัดในไฟล์ 1 ออกจากไฟล์ 2 ได้อย่างไร

ธง jp

ฉันต้องการใช้ file1 และลบบรรทัดทั้งหมดที่มีอยู่ใน file2 โดยควรเก็บชื่อไฟล์ file1 เมื่อเสร็จแล้วโดยเก็บบรรทัดที่ไม่ได้แก้ไขของสิ่งที่เหลืออยู่

ฉันได้ลองใช้ diff ดังนี้

diff --suppress-common-lines file1 file2 > newfile

สิ่งนี้ทำให้ฉันอย่างใดอย่างหนึ่งและผลลัพธ์ < หรือ > ที่จุดเริ่มต้นของแต่ละบรรทัดขึ้นอยู่กับลำดับของไฟล์ทั้งสองซึ่งฉันไม่ต้องการ

ลองใช้ comm:

comm -23 file1 file2 > ไฟล์ใหม่

สิ่งนี้จำเป็นต้องจัดลำดับรายการใหม่ และรายการที่ฉันมีทั้งหมดมีความสำคัญต่อลำดับ

มีความคิดว่าฉันจะบรรลุเป้าหมายนี้ได้อย่างไร

hr flag
มัน *ฟังดู* เหมือนคุณต้องการบางอย่าง เช่น `grep -vxFf file2 file1` หรือ `awk 'NR==FNR{a[$0]; next} !($0 in a)' file2 file1` - ดูตัวอย่าง [การเปรียบเทียบไฟล์ข้อความสองไฟล์และบันทึกสิ่งที่ขาดหายไป](https://askubuntu.com/questions/1153850/comparing-two-text-files-and-save -สิ่งที่ขาดหายไป)
th flag
@steeldriver ให้คำตอบนั้น
jp flag
ขอบคุณสำหรับคำแนะนำ การทำงานส่วนใหญ่ไฟล์จะเปรียบเทียบเป็นการกำหนดค่าสวิตช์เครือข่ายซึ่งใช้ ! ตัวละครระหว่างส่วน วิธีแก้ปัญหาทั้งสองนี้จะลบอักขระเหล่านี้ออก และฉันต้องการเก็บไว้ มีวิธีที่จะรักษาตัวละครเหล่านั้นไว้หรือไม่?
hr flag
@wavers โปรด [แก้ไข] คำถามของคุณพร้อมตัวอย่างขั้นต่ำของไฟล์ 2 ไฟล์และผลลัพธ์ที่คุณต้องการ หรือลบคำถามนี้แล้วถามเฉพาะเจาะจงมากขึ้น เนื่องจากเป็นคำถามซ้ำกับที่ฉันเชื่อมโยงไว้
jp flag
ไม่เป็นไร ไฟล์พื้นฐานของฉันมี ! นำสิ่งเหล่านั้นออกไปและทุกอย่างก็ดี ขอบคุณ

โพสต์คำตอบ

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