Jak wyświetlić listę plików tekstowych bez rozszerzenia pliku .txt?


10

Na przykład, jak mogę zreplikować:

ls *.txt

kiedy w moich plikach tekstowych brakuje .txtkońca, a jeśli chodzi o rozszerzenia, pojawiają się tak samo jak wiele innych typów plików?

Alternatywnie, czy jest możliwe wyszczególnienie tylko tych plików, które NIE mają rozszerzenia pliku?

Odpowiedzi:


8

Aby dopasować pliki, które w ogóle nie mają rozszerzenia, możesz użyć polecenia

ls | grep -v '\.'

Aby dopasować pliki, które nie mają .txtrozszerzenia, możesz użyć polecenia

ls | grep -v '\.txt'

Spowoduje to przekazanie listy plików w bieżącym katalogu do grep, co usunie wszystkie nazwy plików, które zawierają .(lub .txtdla drugiego polecenia) w nich.


Dziękuję Ci! To odpowiedziało na moje pytanie. Ponadto, czy można używać tego samego narzędzia grep z innymi poleceniami? Na przykład z todos? (do konwersji zakończeń linii)
— user82212,

1
Tak, grepmożna go używać z dowolnym poleceniem. |Symbol jest używany do przekazywania wyników z jednej komendy do drugiej, i grepbędzie pasował do linii, które mają (lub nie masz) określony tekst. Ale jeśli chcesz zmodyfikować tekst (oprócz drukowania tylko pasujących wierszy), powinieneś rzucić okiem na sedpolecenie.
— iBelieve

Aby znaleźć tylko pliki tekstowe (z wyłączeniem katalogów i plików binarnych), użyj:ls --classify | grep -v '/'.'*'
— chaskes

6

Dzięki ls -ignore="PATTERN"niemu możesz wykluczyć pliki z wyniku ls.

Na przykład, ls --ignore="*.txt"aby zignorować pliki txt.


3

Po prostu zaneguj wzór (uwaga: shopt -s extglobjest wymagana).

Aby wyświetlić wszystkie pliki bez rozszerzenia:

ls !(*.*)

Aby wyświetlić txtpliki inne niż pliki, spróbuj:

ls !(*.txt)

0

Polecenie ls -SX1|lesszostanie posortowane według rozszerzenia w jednej kolumnie, a pliki bez niego zostaną przeniesione na górę. Przeciąganie przez mniej, jak w przykładzie, jest zalecane dla katalogów zawierających więcej niż kilka plików, aby ograniczyć wyjście do pełnego ekranu na raz.


0

Wolę unikać używania grep do prostych operacji listowania.

Aby uniknąć używania grep,

Polecam za pomocą ls !(*.*)do wyszukiwania plików bez rozszerzenia pliku i

ls -I "*.gz" -I "*.tz" lub ls --ignore={"*.jpg","*.png","*.bmp"}

aby wykluczyć określone rozszerzenia plików

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.