2016-05-01 3 views
0

Предположим, у вас есть эта переменная строка в Баш:Баш: Как извлечь номер эпизода из строки

filename="House Of Lies 5x02 HDTV XviD [DivxTotaL]" 

Что я могу сделать, чтобы получить 5x02 часть?

Я попытался с Grep не повезло:

echo "$filename" > grep -c '[0-9]x[0-9]{2}' 
+0

Вы хотите использовать sed или awk. –

ответ

4

Опция -c, который вы передаете с Grep неправильно

-c только подсчет выбранных линий на стандартный вывод.

$ echo $filename | grep -oE '[0-9]{1,2}x[0-9]{1,3}' 
5x02 

-o Печать только часть согласования линий.

-E Расширенная Regex

3
echo "$filename" | egrep -o '[0-9]x[0-9]{2}' 

>file перенаправляет вывод в файл; |cmd передает его другой команде. -c подсчитывает количество совпадений, что здесь не полезно; -o выводит соответствующие строки. Чтобы иметь возможность использовать {2}, вам необходимо включить расширенные регулярные выражения, которые делает egrep.

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