如何从不同长度的文件名字符串中提取日期和时间:
示例
filename_a=398MUENS05_0_20150409_210733_947.wav
filename_b=346LAUNS01B_20150611_225604.wav
我想用两个下划线作为标记,但我不知道如何用bash做到这一点。我尝试使用cut -d_ -f...
但它不起作用,因为下划线的数量在每个字符串中变化。
答案 0 :(得分:1)
你可以用grep之类的
来做 grep -o '[[:digit:]]\{8\}_[[:digit:]]\{6\}'
找到8位数字,然后是下划线,然后是6位数字,只获得结果的那些部分。例如:
$ filename_a=398MUENS05_0_20150409_210733_947.wav
$ filename_b=346LAUNS01B_20150611_225604.wav
$ echo $filename_a | grep -o '[[:digit:]]\{8\}_[[:digit:]]\{6\}'
20150409_210733
$ echo $filename_b | grep -o '[[:digit:]]\{8\}_[[:digit:]]\{6\}'
20150611_225604