2014-03-12 4 views
0

Сохранение нескольких результатов от AWK-скрипта до переменных оболочки c.Сохранение нескольких результатов от AWK до переменных оболочки

У меня есть простой скрипт AWK, работающий в терминале, чтобы найти max и min из входного текстового файла.

Как сохранить эти значения max и min в переменной c shell, чтобы использовать ее позже.

Вот AWK

awk 'NR == 1 { xmax=$1; xmin=$1 } \ 
    { if ($1>xmax) xmax=$1; if ($1<xmin) xmin=$1;} \ 
    END {printf "X-Min: %d\tX-Max: %d\n", xmin, xmax}' $inpfile 

Я хочу сохранить это в уже определенных переменных позволяет говорить $ Xmin и $ Xmax

Любое предложение было бы большую помощь, у меня нет опыта работы с SHELL и AWK.

+0

Вы говорите, что "C Shell", но помечено вопрос, как 'bash'. Какую оболочку вы имеете в виду? – chepner

+0

извините его c shell, просто удалил тег bash – Indigo

+0

распечатайте их с awk, проанализируйте его с csh. –

ответ

1

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

Вам нужно будет полагаться на способность оболочки выполнять CMD-замещение.

назад, когда все у меня было CSH, я сделал бы

setenv xmin_xmax = `awk 'NR == 1 { xmax=$1; xmin=$1 } \ 
{ if ($1>xmax) xmax=$1; if ($1<xmin) xmin=$1; printf("%d|%d\n", xmin, xmax}' $inpfile` 

setenv xmin = `echo "$xmin_xmax" | sed 's/|.*$//'` 
setenv xmax = `echo "$xmin_xmax" | sed 's/*.|//'` 

Извините, но у меня нет доступа к ЖСС, чтобы проверить это с компанией. Поскольку вы находитесь внутри подстановки cmd с вашим awk, вам, вероятно, понадобится больше символов продолжения \ для подключения этих строк.

Если у вас есть проблемы с этим, размещайте сообщения об ошибках в качестве комментариев, и я увижу, могу ли я вспомнить специальные заклинания csh.

EDIT Или увидеть Grymoire CSH tips для того, как использовать массив переменных в CSH. (Я не помню это!)

IHTH

Смежные вопросы