Score:2

วิธีลบไฟล์ซ้ำจากโฟลเดอร์หนึ่งหากชื่อไฟล์ไม่ปรากฏในโฟลเดอร์อื่น

ธง in

ฉันมีสองโฟลเดอร์โดยที่หนึ่งมีไฟล์ txt และอีกไฟล์ .jpg ที่มีชื่อตรงกัน อย่างไรก็ตาม ไฟล์ txt มีมากกว่าไฟล์ jpg มาก

folder_1/00.txt
folder_1/01.txt 
folder_1/02.txt 
folder_1/03.txt 
folder_1/04.txt   

folder_2/00.jpg
folder_2/01.jpg 
folder_2/02.jpg 

นี่ฉันต้องถอด 03.txt และ 04.txt เนื่องจากชื่อเหล่านี้ไม่ปรากฏใน folder_2

Score:3
ธง cn

นี่เป็นวิธีหนึ่ง:

$ สำหรับไฟล์ใน folder_1/*.jpg; ทำ 
    fileName="${file##*/}"
    [[ -e folder_2/${fileName/.txt/.jpg} ]] || echo rm -- "ไฟล์ $"
เสร็จแล้ว
rm -- folder_1/03.txt
rm -- folder_1/04.txt

เดอะ สำหรับ วนซ้ำไฟล์และไดเร็กทอรีที่ไม่ได้ซ่อนทั้งหมด โฟลเดอร์_1 ซึ่งลงท้ายด้วยชื่อ .jpg,บันทึกเป็น $ไฟล์. ถัดไป, fileName="${file##*/}" ตั้งค่าตัวแปร $ชื่อไฟล์ ถึงมูลค่าของ $ไฟล์ กับทุกสิ่งจนวาระสุดท้าย / ลบออก ซึ่งหมายความว่าจะเป็นชื่อไฟล์โดยไม่มีไดเร็กทอรี สุดท้ายกับ [[ -e folder_2/${fileName/.txt/.jpg} ]] || echo rm -- $ไฟล์เราตรวจสอบว่ามีไฟล์อยู่หรือไม่ โฟลเดอร์_2 ที่มีชื่อเดียวกันแต่ก .txt นามสกุล และถ้าไม่ echo rm -- "ไฟล์ $". หากเป็นไปตามที่คุณต้องการ ให้ลบไฟล์ เสียงสะท้อน และเรียกใช้อีกครั้งเพื่อลบไฟล์จริง:

สำหรับไฟล์ใน folder_1/*.jpg; ทำ 
    fileName="${file##*/}"
    [[ -e folder_2/${fileName/.txt/.jpg} ]] || rm -- "$ ไฟล์"
เสร็จแล้ว

เดอะ -- ใน rm -- "$ ไฟล์" ไม่จำเป็นที่นี่แต่เป็นนิสัยที่ดีที่ควรมี: มันทำให้แน่ใจว่าทุกอย่างหลังจากนั้น -- ไม่ได้แยกวิเคราะห์เป็นตัวเลือก rmจึงทำให้คำสั่งสามารถทำงานกับชื่อไฟล์ที่ขึ้นต้นด้วย -.

โพสต์คำตอบ

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