2010-04-08 5 views

ответ

0

Вы можете установить переменную IFS для изменения разделителя между словами. (Не забудьте сохранить старое значение, чтобы вы могли восстановить его, когда закончите.)

Основываясь на быстром Google, я предполагаю, что «разделитель SOH» - это символ с кодом 1, поэтому вам нужно получить это нечетный символ в IFS:

IFS=`echo -e '\01'` 

Если этого недостаточно, вам, вероятно, нужно расширить «разделить строку текста». Что вы хотите разбить?

+0

Вам не нужно использовать 'echo', вы можете сделать это' IFS = $ '\ 1''. Также 'man ascii' предоставит вам таблицу с именами кодов символов. –

+0

Я хочу разбить его так, чтобы он составлял элементы массива. IFS = 'echo -e '\ 01'' read -ra VAL_ARR <<<" $ val " Он по-прежнему не работает. Я также пробовал: IFS = $ '\ 1' read -ra VAL_ARR <<< "$ val" – syker

2

Вы можете использовать восьмеричное значение SOH в качестве разделителя, используя awk.

$ awk -F"\001" '{print $1}' file 
Смежные вопросы