Chcete zlepšit tuto otázku? Přidejte podrobnosti a objasněte problém úpravou tohoto příspěvku.
Zavřeno před 4 lety.
Vylepšete tuto otázku
Mám adresář s devíti soubory.
- 1 končící na
.bat
- 2 končící na
.bak
- 4 končící na
.txt
- 2 končící na
.xtxt
Moje otázka zní, jak mohu uvést pouze soubory končící na .txt
, ale bez použití tečky. Chci tedy zobrazit 4 končící na .txt
, bez použití příkazu
ls *.txt
protože nechci použít období k filtrování souborů. Momentálně se učím zástupné znaky, takže se v tomhle používají. Myslím, že musím použít !
nějak, ale nejsem si jistý, kde ho použít.
Přijatá odpověď:
Nerozumím proč nechcete používat .
. Každopádně můžete místo toho použít nějakou třídu znaků, kde .
je zahrnuto, ale ostatní znaky z vašeho adresáře nikoli, dobrým kandidátem pro tento účel může být [[:punct:]]
:
LC_ALL=C ls -- *[[:punct:]]txt
Změnil jsem národní prostředí na C
protože na tom závisí třídy znaků a přidali --
na ls
k zobrazení seznamu všech souborů, které začínají -
správně.
Definice:
`[:punct:]'
Punctuation characters; in the `C' locale and ASCII character
encoding, this is `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [
] ^ _ ` { | } ~'.