W moim centOS jest wiele plików dziennika w moim folderze / dzienniku
/log/log.20120308
/log/log.20120308.1
/log/log.20120308.2
/log/log.20120308.3
/log/log.20120308.error
/log/log.20120308.error.1
Widocznie, jeśli użyję polecenia jak poniżej
find /log -type f -iregex '.*/'log.20120308'.[0-9]*' -print
Dostanę tylko
/log/log.20120308.1
/log/log.20120308.2
/log/log.20120308.3
Mam nadzieję, że mam odpowiednie wyrażenie regularne, aby uzyskać listę poniżej, ale nie powiodło się
/log/log.20120308
/log/log.20120308.1
/log/log.20120308.2
/log/log.20120308.3
Nie mogłem znaleźć wyrażenia regularnego, aby wybrać rozszerzenie .1, .2, .3 lub puste
*
jeśli masz tylko cyfry jednocyfrowe po.
które chcesz znaleźć.Jedna wersja:
Oczywiście wybrałoby to również plik, który został nazwany
/log/log.20120308..
, ale nie wyobrażam sobie, że byłby to prawdopodobny problem.Innym sposobem byłoby użycie
-o
jako operator „lub”, z nawiasami po ucieczce wokół operandów:Och, jeszcze jedna aktualizacja do użytku
-iregex
: możesz po prostu nieco cytować'.*/log.20120308.[0-9]*'
wybrałoby to samo co'.*/'log.20120308'.[0-9]*'
Umieszczając to razem z sugestią @ md-gao, możesz uzyskać tę wersję:źródło