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.