В общем случае ответ «да», вы можете динамически определить разделитель и использовать его в дальнейшем кодировании.
Вы не упомянули, как вы будете определять, какой разделитель используется (например, что произойдет, если оба символа существуют в вашем файле данных?), Поэтому для обсуждения предположим, что разделитель был определен и сохранен в переменной del
.
Вы также не указали, как будете использовать этот разделитель в своем коде, поэтому, опять же, для обсуждения, мы рассмотрим примеры с использованием cut
и awk
.
Предположим, что наш файл данных (mydata
) содержит следующую единственную строку данных:
$ cat mydata
abc;def|ghi;jkl|mno;pqr|stu
Теперь мы переключим наш разделитель между ;
и |
и рассмотрим несколько простых примеров cut
и awk
...
############################
# set our delimiter to ';'
$ del=";"
##### display 1st field
$ cut -d"${del}" -f1 mydata
abc
$ awk -F"${del}" '{print $1}' mydata
abc
#### display 4th field
$ cut -d"${del}" -f4 mydata
pqr|stu
$ awk -F"${del}" '{print $4}' mydata
pqr|stu
############################
# set our delimiter to '|'
#
$ del="|"
##### display 1st field
$ cut -d"${del}" -f1 mydata
abc;def
$ awk -F"${del}" '{print $1}' mydata
abc;def
##### display 4th field
$ cut -d"${del}" -f4 mydata
stu
$ awk -F"${del}" '{print $4}' mydata
stu