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