2015-07-14 2 views
0

Как извлечь дату и время из имени файла строки с различной длиной:Найти и время в имени файла

Примером

filename_a=398MUENS05_0_20150409_210733_947.wav 
filename_b=346LAUNS01B_20150611_225604.wav 

Я думал о том, чтобы использовать два подчеркивание в качестве маркеров, но Я не уверен, как это сделать с помощью bash. Я попытался использовать cut -d_ -f..., но он не будет работать, поскольку количество символов подчеркивания изменяется в каждой строке.

ответ

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 
Смежные вопросы