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只是一种矫枉过正.那么,有没有更好或更短的方法来实现这一目标.
将井号和斜杠字符上的字段拆分为数组并检索所需元素。
awk 'NR==2 {split($2, arr, "[#/]"); print arr[2]}'
Run Code Online (Sandbox Code Playgroud)