Jak wypisać każde inne rozszerzenie pliku używając wyrażenia regularnego na Linuksie?


1

Mam następujące polecenie, które wyświetla listę wszystkich plików, które mają rozszerzenie .swf jednak chciałbym zwrócić listę każdego pliku, który nie ma rozszerzenia .swf

find . -maxdepth 1 -regextype posix-egrep -regex '.*/.*\.swf' -exec echo {} \;

Odpowiedzi:


3

Po prostu zaneguj warunek

-not -regex '.*/.*\.swf'

To działa jak urok. Czy jest jednak sposób na używanie wyrażeń regularnych?
PeanutsMonkey

Hmmm ... a -regex '. * /. * [^ s] [^ w] [^ f]' rodzaj prac, jak sądzę.
tink

1

Jeśli chcesz tylko pliki, które nie mają .swf rozszerzenie, po prostu użyj wstecz grep :

find . -maxdepth 1 -type f | grep -v *\.swf

Lub zaneguj -name ze znalezieniem:

find . -maxdepth 1 ! -name "*\.swf"
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.