假设你在bash中有这个字符串变量:
filename="House Of Lies 5x02 HDTV XviD [DivxTotaL]"
我该怎样做才能获得5x02
部分?
我尝试过grep而没有运气:
echo "$filename" > grep -c '[0-9]x[0-9]{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
所做的扩展正则表达式。