Я использую IFS=', '
, чтобы разделить строку текста с разделителями-запятыми на массив. Проблема в том, что иногда один из элементов, разделенных запятыми, содержит пробел после :
. Результирующий массив содержит этот элемент как два отдельных элемента массива. Можно ли настроить IFS только на разделение ', '
и игнорировать разделенный запятыми элемент, содержащий ': '
(или любой другой символ в этом отношении)?
См. Разделенную запятыми строку, возвращаемую первой командой ниже, обратите внимание, что второй элемент имеет :
. См. MarkerNames[1] and MarkerNames[2]
, чтобы увидеть нежелательное разделение во второй команде ниже.
$ 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")'