2016-12-23 8 views
1

Я пытаюсь выполнить следующую команду:найти -regex не работает с {} спецификатора

find /var/log/sa/ -regex ".*/sa[0\-3]\{2\}" 

Однако это не возвращает никаких результатов. Я вижу в /var/log/sa/, что файлы существуют, оба формата: sa## и sar## - Я хочу только совпадаю с предыдущим.

ll /var/log/sa/ 
total 40992 
-rw-r--r-- 1 root root 719892 Dec 1 23:50 sa01 
-rw-r--r-- 1 root root 719892 Dec 2 23:50 sa02 
-rw-r--r-- 1 root root 719892 Dec 3 23:50 sa03 
-rw-r--r-- 1 root root 719892 Dec 4 23:50 sa04 
-rw-r--r-- 1 root root 719892 Dec 5 23:50 sa05 
-rw-r--r-- 1 root root 719892 Dec 6 23:50 sa06 
-rw-r--r-- 1 root root 719892 Dec 7 23:50 sa07 
-rw-r--r-- 1 root root 719892 Dec 8 23:50 sa08 
-rw-r--r-- 1 root root 719892 Dec 9 23:50 sa09 
-rw-r--r-- 1 root root 719892 Dec 10 23:50 sa10 
-rw-r--r-- 1 root root 719892 Dec 11 23:50 sa11 
-rw-r--r-- 1 root root 719892 Dec 12 23:50 sa12 
-rw-r--r-- 1 root root 719892 Dec 13 23:50 sa13 
-rw-r--r-- 1 root root 719940 Dec 14 23:50 sa14 
-rw-r--r-- 1 root root 719892 Dec 15 23:50 sa15 
-rw-r--r-- 1 root root 719892 Dec 16 23:50 sa16 
-rw-r--r-- 1 root root 719892 Dec 17 23:50 sa17 
-rw-r--r-- 1 root root 719892 Dec 18 23:50 sa18 
-rw-r--r-- 1 root root 719892 Dec 19 23:50 sa19 
-rw-r--r-- 1 root root 719892 Dec 20 23:50 sa20 
-rw-r--r-- 1 root root 719892 Dec 21 23:50 sa21 
-rw-r--r-- 1 root root 719892 Dec 22 23:50 sa22 
-rw-r--r-- 1 root root 669932 Dec 23 22:10 sa23 
-rw-r--r-- 1 root root 719892 Nov 24 23:50 sa24 
-rw-r--r-- 1 root root 719892 Nov 25 23:50 sa25 
-rw-r--r-- 1 root root 719892 Nov 26 23:50 sa26 
-rw-r--r-- 1 root root 719892 Nov 27 23:50 sa27 
-rw-r--r-- 1 root root 719892 Nov 28 23:50 sa28 
-rw-r--r-- 1 root root 719892 Nov 29 23:50 sa29 
-rw-r--r-- 1 root root 719892 Nov 30 23:50 sa30 
-rw-r--r-- 1 root root 673355 Dec 1 23:53 sar01 
-rw-r--r-- 1 root root 673355 Dec 2 23:53 sar02 
-rw-r--r-- 1 root root 673355 Dec 3 23:53 sar03 
-rw-r--r-- 1 root root 673355 Dec 4 23:53 sar04 
-rw-r--r-- 1 root root 673355 Dec 5 23:53 sar05 
-rw-r--r-- 1 root root 673355 Dec 6 23:53 sar06 
-rw-r--r-- 1 root root 673355 Dec 7 23:53 sar07 
-rw-r--r-- 1 root root 673355 Dec 8 23:53 sar08 
-rw-r--r-- 1 root root 673355 Dec 9 23:53 sar09 
-rw-r--r-- 1 root root 673355 Dec 10 23:53 sar10 
-rw-r--r-- 1 root root 673355 Dec 11 23:53 sar11 
-rw-r--r-- 1 root root 673355 Dec 12 23:53 sar12 
-rw-r--r-- 1 root root 673355 Dec 13 23:53 sar13 
-rw-r--r-- 1 root root 674697 Dec 14 23:53 sar14 
-rw-r--r-- 1 root root 673355 Dec 15 23:53 sar15 
-rw-r--r-- 1 root root 673355 Dec 16 23:53 sar16 
-rw-r--r-- 1 root root 673355 Dec 17 23:53 sar17 
-rw-r--r-- 1 root root 673355 Dec 18 23:53 sar18 
-rw-r--r-- 1 root root 673355 Dec 19 23:53 sar19 
-rw-r--r-- 1 root root 673355 Dec 20 23:53 sar20 
-rw-r--r-- 1 root root 673355 Dec 21 23:53 sar21 
-rw-r--r-- 1 root root 673355 Dec 22 23:53 sar22 
-rw-r--r-- 1 root root 673355 Nov 23 23:53 sar23 
-rw-r--r-- 1 root root 673355 Nov 24 23:53 sar24 
-rw-r--r-- 1 root root 673355 Nov 25 23:53 sar25 
-rw-r--r-- 1 root root 673355 Nov 26 23:53 sar26 
-rw-r--r-- 1 root root 673355 Nov 27 23:53 sar27 
-rw-r--r-- 1 root root 673355 Nov 28 23:53 sar28 
-rw-r--r-- 1 root root 673355 Nov 29 23:53 sar29 
-rw-r--r-- 1 root root 673355 Nov 30 23:53 sar30 
+0

Попробуйте ''. */Sa [0-3] \ {2 \} "' –

+0

Пробовал это, без кубиков – MrDuk

+0

Можете ли вы предоставить несколько реальных имен файлов, которые у вас там есть? (нет '##', действительные цифры) – Dekel

ответ

1

Вы должны использовать:

find /var/log/sa/ -regex ".*/sa[0-3][0-9]" 

С первого символа после sa должен быть 0/1/2/3 и второй символ должен быть любая цифра.

Причина в том, что GNU не поддерживает синтаксис {from,to}. The default regex in find is emacs, но версия, используемая GNU, не поддерживает синтаксис {..}.

0
find /var/log/sa/ -regextype posix-egrep -regex '.*/sa[0-3]{2}' 

Вы должны использовать posix-egrep.

 Смежные вопросы

  • Нет связанных вопросов^_^