2015-07-14 1 views
0

Comment extraire la date et l'heure d'une chaîne de nom de fichier avec une longueur différente:date de Recherche et l'heure dans le nom de fichier

Exemple

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

Je pensais que sur le point d'utiliser les deux soulignement comme marqueur, mais Je ne suis pas sûr de savoir comment faire ça avec bash. J'ai essayé d'utiliser cut -d_ -f... mais cela ne fonctionnera pas car le nombre de traits de soulignement varie dans chaque chaîne.

Répondre

1

Vous pouvez le faire avec grep comme

grep -o '[[:digit:]]\{8\}_[[:digit:]]\{6\}' 

pour trouver 8 chiffres suivis par underscore puis 6 autres chiffres, et obtenir que les parties du résultat. Par exemple:

$ 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