J'utilise IFS=', '
pour diviser une chaîne de texte délimité par des virgules dans un tableau. Le problème est que parfois l'un des éléments délimités par des virgules contient un espace suivant un :
. Le tableau résultant contient cet élément en tant que deux éléments de tableau séparés. Est-il possible de définir IFS à seulement diviser ', '
et ignorer un élément délimité par des virgules qui contient ': '
(ou tout autre caractère d'ailleurs)?Bash: initialise IFS à Space après un caractère spécifique uniquement?
Voir la chaîne délimitée par des virgules retournée par la première commande ci-dessous, notez que le deuxième élément a le :
. Voir le MarkerNames[1] and MarkerNames[2]
pour voir la division indésirable dans la deuxième commande ci-dessous.
$ exiftool -s3 -TracksMarkersName audioFile.wav
Marker1, Tempo: 120.0, Silence, Marker2, Silence.1, Marker3, Silence.2, Marker4, Silence.3, Marker5
$ IFS=', ' read -r -a MarkerNames <<< $(exiftool -s3 -TracksMarkersName audioFile.wav)
$ declare -p MarkerNames
declare -a MarkerNames='([0]="Marker1" [1]="Tempo:" [2]="120.0" [3]="Silence" [4]="Marker2" [5]="Silence.1" [6]="Marker3" [7]="Silence.2" [8]="Marker4" [9]="Silence.3" [10]="Marker5")'
Pouvez-vous poster un [mcve]? – tripleee
Ajouté. Merci @tripleee. –