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 `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [
] ^ _ ` { | } ~'.