Findstr: ชื่อไฟล์จับคู่ที่มีจุดเดียว


0

ฉันพยายามค้นหาไฟล์ทั้งหมดในโฟลเดอร์และไดเรกทอรีย่อยที่มีจุดเดียว การอ่านเอกสารประกอบของ findstr ฉันได้มากับชนิดของ regex นี้ แต่มันยังคงตรงกับชื่อไฟล์ทั้งหมดที่มีจุด ในความเข้าใจของฉัน regex ฉันสร้างควรอ่าน: "ตัวละครใด ๆ ยกเว้นจุดแล้วต้องมีจุดเดียวแล้วตัวละครใด ๆ ยกเว้นจุด."

where /r directory *.* | findstr /irc:"[^\.]*\.[^\.]*"

ฉันรู้ว่าฉันสามารถติดตั้ง grep ได้ แต่ฉันต้องการโซลูชันที่ใช้งานได้ดี

คำตอบ:


0

ตกลงฉันพบวิธีแก้ปัญหาด้วยตัวเอง

เนื่องจากการ[class]*จับคู่เกิดขึ้นที่ศูนย์หรือมากกว่านั้นนิพจน์นี้จะจับคู่กันทุกครั้งที่มีจุดอย่างน้อยหนึ่งจุด (ตรงข้ามกับหนึ่งจุด) ภายในชื่อไฟล์

เพื่อให้ตรงกับตำแหน่งของจุดจะต้องระบุอย่างแน่นอน ในกรณีของฉันฉันเพิ่งเพิ่มตัวระบุตำแหน่ง "^" (จุดเริ่มต้นของบรรทัด) และ "$" (จุดสิ้นสุดของบรรทัด) ดังนั้นตอนนี้ regex แปลเป็น "เส้นที่มีจุดเดียวตรงใดก็ได้ระหว่างจุดเริ่มต้นและจุดสิ้นสุดของ เส้น"

where /r directory *.* | findstr /irc:"^[^\.]*\.[^\.]*$"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.