在bash中提取两个字符之间的字符串

Ran*_*Rag 5 string bash awk sed

我有一个格式如下的字符串

Walk Off the Earth - Somebody That I Used to Know
[playing] #36/37   1:04/4:05 (26%)
volume: n/a   repeat: off   random: on    single: off   consume: off
Run Code Online (Sandbox Code Playgroud)

现在,从上面的字符串我需要提取36#36/37.

我做的第一件事就是#36/37从第二行中提取

echo "above mentioned string" | awk 'NR==2 {print $2}'
Run Code Online (Sandbox Code Playgroud)

现在,我想36从上面提取的部分中提取出来

echo `#36/37` | sed -e 's/\//#/g' | awk -F "#" '{print $2}'
Run Code Online (Sandbox Code Playgroud)

这让36我成了我的外表.

但是,我觉得使用两者sed and awk来提取文本#36/37只是一种矫枉过正.那么,有没有更好或更短的方法来实现这一目标.

Pau*_*ce. 5

将井号和斜杠字符上的字段拆分为数组并检索所需元素。

awk 'NR==2 {split($2, arr, "[#/]"); print arr[2]}'
Run Code Online (Sandbox Code Playgroud)