1

gu@moshell:~$ grep "^RNC_level.*rncID" cdd/$FILE
RNC_level;rncID;177;from IBIS, as Контроллер (177, 277, 377…);;;;;;;;;

опа, прокатывает.

gu@moshell:~$ grep "^RNC_level.*rncID" cdd/$FILE | awk -F ";" '{print $3}'
177

и тут прокатывает

gu@moshell:~$ grep "^RNC_level.*rncID" cdd/$FILE | awk -F ";" '{print $3}' | sed -e 's/\(^[0-9]\).*/\1/'
1

и здесь прокатило

gu@moshell:~$ grep "RNC`grep "^RNC_level.*rncID" cdd/$FILE | awk -F ";" '{print $3}' | sed -e 's/\(^[0-9]\).*/\1/'`" ntp_servers
RNC1 10.43.64.2 10.43.64.4

и даже до сюда дошло

gu@moshell:~$ grep "RNC`grep "^RNC_level.*rncID" cdd/$FILE | awk -F ";" '{print $3}' | sed -e 's/\(^[0-9]\).*/\1/'`" ntp_servers | awk '{print $2}'
10.43.64.2

вуаля, нужный результат!

gu@moshell:~$ VARIABLE=`grep "RNC`grep "^RNC_level.*rncID" cdd/$FILE | awk -F ";" '{print $3}' | sed -e 's/\(^[0-9]\).*/\1/'`" ntp_servers | awk '{print $2}'`
-bash: command substitution: line 1: unexpected EOF while looking for matching `"'
-bash: command substitution: line 2: ошибка синтаксиса: неожиданный конец файла
-bash: command substitution: line 1: unexpected EOF while looking for matching `"'
-bash: command substitution: line 2: ошибка синтаксиса: неожиданный конец файла
-bash: ^RNC_level.*rncID: команда не найдена
gu@moshell:~$

а вот в переменную его не запихнуть.

ЧЯДНТ?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

2 (10.10.2013 23:22:41 отредактировано -=Serj=-)

moshell пишет:

ЧЯДНТ?

Видимо, проблемы из-за вложенных обратных кавычек.
Попробуйте так:

$ VARIABLE=$(grep "RNC`grep "^RNC_level.*rncID" cdd/$FILE | awk -F ";" '{print $3}' | sed -e 's/\(^[0-9]\).*/\1/'`" ntp_servers | awk '{print $2}')

ЗЫ. А вообще, жуть полная ag

Да, у меня Ubuntu.
Нет, не глючит.

3

moshell пишет:

ЧЯДНТ?

посмотрите пожалйста ещё раз на то, ЧТО вы написали, и подумайте:

В каком месте этому коду самое место?

Да, ВСЁ это можно и нужно сделать ОДНОЙ командой sed.

И да, вложенные `` не допускаются, но допускаются вложенные $()

Наконец, у вас очень всё просто, и понятно ребёнку. Используйте магию eval, и очень сильное колдунство <().

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

4 (11.10.2013 00:20:01 отредактировано moshell)

-=Serj=-, спасибо! можно в кратце, каким образом шайтан машина под управлением скобок правильно интерпретирует то что я хотел?


drBatty пишет:

Да, ВСЁ это можно и нужно сделать ОДНОЙ командой sed.

тут два файла замешаны, в первом идет поиск одной штуки, потом идет поиск во втором файле по отфильтрованной штуке из первого поиска.

sed умеет работать сразу с двумя файлами?


-=Serj=- пишет:

ЗЫ. А вообще, жуть полная ag

Согласен, зато одной командой ag

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

5

moshell пишет:

sed умеет работать сразу с двумя файлами?

естественно. Хоть с Over9000.

Как и в любом скриптовом ЯП, в sed есть магия eval в полный рост.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)