Ingin memperbaiki pertanyaan ini? Tambahkan detail dan klarifikasi masalahnya dengan mengedit postingan ini.
Ditutup 4 tahun yang lalu.
Perbaiki pertanyaan ini
Saya memiliki direktori dengan sembilan file di dalamnya.
- 1 diakhiri dengan
.bat - 2 diakhiri dengan
.bak - 4 diakhiri dengan
.txt - 2 diakhiri dengan
.xtxt
Pertanyaan saya adalah, bagaimana cara mendaftar hanya file yang berakhiran .txt , tetapi tanpa menggunakan titik. Jadi saya ingin menampilkan 4 yang diakhiri dengan .txt , tanpa menggunakan perintah
ls *.txt
karena saya tidak ingin menggunakan periode untuk menyaring file. Saya sedang mempelajari wildcard saat ini sehingga mereka digunakan dalam hal ini. Saya rasa saya harus menggunakan ! perintah entah bagaimana tapi saya tidak yakin di mana menggunakannya.
Jawaban yang Diterima:
Saya tidak mengerti mengapa Anda tidak ingin menggunakan . . Bagaimanapun Anda dapat menggunakan beberapa kelas karakter sebagai gantinya di mana . disertakan, tetapi karakter lain dari direktori Anda tidak, kandidat yang baik untuk tujuan ini adalah [[:punct:]] :
LC_ALL=C ls -- *[[:punct:]]txt
Saya mengubah lokal menjadi C karena kelas karakter bergantung padanya, dan menambahkan -- ke ls opsi untuk membuat daftar semua file yang dimulai dengan - dengan benar.
Definisi:
`[:punct:]'
Punctuation characters; in the `C' locale and ASCII character
encoding, this is `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [
] ^ _ ` { | } ~'.