[bash] récupérer la première occurence d'une série de digits dans une string
	
	
		Bonjour à tous,
ça fait un bon moment que je m'énèrve là-dessus.
J'ai fait un script bash qui fonctionne bien sous Linux mais qui ne marche pas sous MacOS.
Là où ça pèche, c'est que j'ai des strings de ce style:
123_bob_marley_03_2011_09
foo_776
blablobli_78876__33plop
Et j'aimerais récupérer uniquement la première série de digits se trouvant n'importe où dans la string. Pour mon exemple, cela donnerait:
123
776
78876
Avec sed, j'arrive à enlever tout ce qui vient éventuellement avant la série de digit:
mais pas ce qui vient après.
Si j'utilise le g, le problème c'est que je récupère toutes les séries de digits, ce que je ne veux pas:
Juste pour information, voici le script en entier:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 
 |  
while read file; do
	BASE=$(basename "$file")
	ID=$(sed 's/[^0-9]*//' <<< ${BASE%.*})
	if [ -n "$ID" ] ; then
		mkdir -p "$ID"
		mv -v "$file" "$ID"
	fi
done < <(find . -maxdepth 2 -iname '*.jpg' -or -iname '*.jpeg' -or -iname '*.mov' -or -iname '*.xml') |