วิธีแสดงรายการไฟล์ข้อความที่ไม่มีนามสกุล. txt


10

ตัวอย่างเช่นฉันจะทำซ้ำ:

ls *.txt

เมื่อไฟล์ข้อความของฉันหายไป.txtตอนจบและเท่าที่ส่วนขยายจะปรากฏเหมือนกับไฟล์ประเภทอื่น ๆ ?

หรือสามารถแสดงรายการเฉพาะไฟล์ที่ไม่มีนามสกุลไฟล์ได้หรือไม่

คำตอบ:


8

หากต้องการจับคู่ไฟล์ที่ไม่มีนามสกุลเลยคุณสามารถใช้คำสั่ง

ls | grep -v '\.'

เพื่อจับคู่ไฟล์ที่ไม่มี.txtนามสกุลคุณสามารถใช้คำสั่ง

ls | grep -v '\.txt'

สิ่งนี้จะผ่านรายการของไฟล์ในไดเรกทอรีปัจจุบันไปยังgrepซึ่งจะลบชื่อไฟล์ทั้งหมดที่มี.(หรือ.txtสำหรับคำสั่งที่สอง) ในพวกเขา


ขอบคุณ! สิ่งนี้ตอบคำถามของฉัน นอกจากนี้เป็นไปได้ไหมที่จะใช้เครื่องมือ grep เดียวกันกับคำสั่งอื่น? ตัวอย่างเช่นกับ to-do (เพื่อแปลงจุดสิ้นสุดบรรทัด)
user82212

1
ใช่grepสามารถใช้กับคำสั่งใด ๆ |สัญลักษณ์ที่ใช้ในการส่งผ่านผลลัพธ์จากคำสั่งหนึ่งไปยังอีกและgrepจะตรงกับสายที่มี (หรือไม่ได้) ข้อความที่ระบุ แต่ถ้าคุณต้องการแก้ไขข้อความ (นอกเหนือจากการพิมพ์บรรทัดที่ตรงกัน) คุณควรดูที่sedคำสั่ง
iBelieve

ในการค้นหาไฟล์ข้อความเท่านั้น (ไม่รวมไดเรกทอรีและไบนารี) ให้ใช้:ls --classify | grep -v '/'.'*'
chaskes

6

ด้วยls -ignore="PATTERN"คุณสามารถแยกไฟล์ออกจากผลลัพธ์ ls

ตัวอย่างเช่นหากls --ignore="*.txt"ต้องการละเว้นไฟล์ txt


3

เพียงคัดค้านรูปแบบของคุณ (หมายเหตุ: shopt -s extglobจำเป็นต้องมี)

ในการแสดงไฟล์ทั้งหมดโดยไม่มีนามสกุล:

ls !(*.*)

ในการแสดงtxtไฟล์ที่ไม่ใช่ให้ลอง:

ls !(*.txt)

0

คำสั่งls -SX1|lessจะเรียงตามนามสกุลในคอลัมน์เดียวและไฟล์ที่ไม่มีจะถูกย้ายไปด้านบน แนะนำให้ใช้การวางท่อน้อยกว่าในตัวอย่างสำหรับไดเรกทอรีที่มีไฟล์มากกว่าสองสามไฟล์เพื่อ จำกัด เอาต์พุตให้เต็มหน้าจอในแต่ละครั้ง


0

ฉันชอบที่จะหลีกเลี่ยงการใช้ grep สำหรับการดำเนินการรายการง่ายๆ

เพื่อที่จะหลีกเลี่ยงการใช้grep,

ฉันแนะนำให้ใช้ls !(*.*)เพื่อค้นหาไฟล์ที่ไม่มีนามสกุลไฟล์และ

ls -I "*.gz" -I "*.tz" หรือ ls --ignore={"*.jpg","*.png","*.bmp"}

เพื่อยกเว้นส่วนขยายไฟล์เฉพาะ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.