Вопрос по string, parsing, unix, shell – Строка формата с разделителями в Unix в формате kash в ksh

2

Я пишу сценарий ksh для анализа строки с разделителями

export dummy="abc"  
echo "123|456|789" | awk '{split($0,output,"|"); print output[3] output[2] output[1]}'

приведенный выше код, кажется, работает, но я не могу присвоить значение output [3] фиктивной переменной.

Есть ли способ сделать такой синтаксический анализ, но я хочу назначить результат анализа в переменной в пределах пространства ksh, т.е. в фиктивном (в приведенном выше примере)?

Ваш Ответ

2   ответа
6

line="123|456|789"
IFS='|' read a b c <<END
$line
END
echo $c  # => 789
3

output[3]) для переменных оболочки (т.е.dummy), вы можете назначить вывод awk только переменной, например,

export dummy=`echo "123|456|789" | awk -F'|' '{ print $3; }'`

Тем не менее, awk немного излишним,cut будет работать так же хорошо:

export dummy=`echo "123|456|789" | cut -d'|' -f3`
Error: User Rate Limit Exceeded iwan

Похожие вопросы