bash:如何从字符串中提取剧集编号

时间:2016-05-01 22:52:40

标签: bash

假设你在bash中有这个字符串变量:

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

我该怎样做才能获得5x02部分?

我尝试过grep而没有运气:

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

2 个答案:

答案 0 :(得分:4)

使用grep传递的选项-c是错误的

-c只有选定行数会写入标准输出。

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

-o仅打印行的匹配部分。

-E扩展正则表达式

答案 1 :(得分:3)

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

>file将输出重定向到文件; |cmd将它传递给另一个命令。 -c计算匹配数,这在这里没有用; -o输出匹配的字符串。为了能够使用{2},您需要启用egrep所做的扩展正则表达式。