Мне нужно найти работающий файл, который будет иметь такой формат:

"Throughput_Monitor_20141211T111311.792-0-V4.4.6_UE_9"

Я использую регулярное выражение как:

ps aux | grep -i [^Throughput_Monitor_]*[UE_9]$

Но я получаю не только указанный выше файл, но и несколько других файлов. Может ли кто-нибудь помочь мне найти регулярное выражение? Я не уверен, где я ошибаюсь.

Благодарность

1
Girija Joshi 11 Дек 2014 в 14:38
[], вероятно, не делают того, что, по вашему мнению, они делают. Это классы символов.
 – 
James Thorpe
11 Дек 2014 в 14:41
ps aux | grep -i '^Throughput_Monitor_.*UE_9$'
 – 
Avinash Raj
11 Дек 2014 в 14:57

2 ответа

Лучший ответ

Вы не должны использовать якоря в командной строке, так как ваша командная строка может содержать некоторые дополнительные данные.

Ты можешь использовать:

ps aux | grep -Ei '\bThroughput_Monitor_.*UE_9\b'

Лучше использовать pgrep, если он у вас есть:

pgrep -ifl 'Throughput_Monitor_.*UE_9'
0
anubhava 11 Дек 2014 в 14:44
ps aux | grep -i ^Throughput_Monitor_.*?UE_9$

Думаю, это должно сработать для вас.

0
vks 11 Дек 2014 в 14:40