LINUX.ORG.RU

Значения awk в переменные

 ,


1

0

Доброго времени суток. Вопрос состоит по присвоению значений awk в переменные. Есть у меня файл:

1;GigabitEthernet1/1
2;GigabitEthernet1/2
3;GigabitEthernet1/3
4;GigabitEthernet1/4
5;GigabitEthernet1/5
6;GigabitEthernet1/6
7;GigabitEthernet1/7
8;GigabitEthernet1/8
9;GigabitEthernet1/9

Вот этим я разделяю на две части строчки:

awk -F";" '{print $1 " " $2}' /home/file

Каким образом мне задать значение $1 и $2 в переменные для того чтобы подставить их в нужном месте?

Суть в том что мне нужно каждую строчку с цифрой и гигабитинтернет подставить в конфиге. Проблема в том что никак не получается задать в переменную те значения.

man awk читал, -v var=val видел. Гуглил. Примеры видел, но у меня не цепляется значение в переменную никак.. Устал искать, надеюсь на вашу помощь . Спасибо.



Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от demo

То есть мне нужно построчно считывать строчки записывать $1 и $2 в временные переменные, дабы во время считывания подставлять в файл эти все значния.

demo
() автор топика
Ответ на: комментарий от demo

Заставляйте awk печатать bash'евские выражения назначения переменных (вроде varname=«something»; anothervar=«anything»; ) и eval'те результат.

AITap ★★★★★
()
Ответ на: комментарий от demo

Забыли eval.

eval «$(awk -F';' '{print „num=“ $1}' /home/file)» # awk печатает: num=значение_первого_поля
echo $num

AITap ★★★★★
()
#!/bin/bash

awk -F';' '{print $1 " " $2}' /home/file | while read i; do
  a=( $i )
  echo "0:${a[0]} 1:${a[1]}"
done
anonymous
()

Почему бы не обойтись одним только шеллом?

#!/bin/sh
IFS=";"
while read var1 var2
do
  echo $var1 $var2
done < /home/file
unterwulf
()

Примеры видел, но у меня не цепляется значение в переменную никак..

echo | awk -v var=val '{print var}'

anonymous
()

eval $(awk -F";" '{printf «VAR1=%s\nVAR2=%s\n», $1, $2}' /home/file)

ananas ★★★★★
()

рекомендую просто писать на чем-нибудь одном (хотя бы данную часть скрипта).

возможности по подстановке у awk ничуть не хуже, чем у shell, так что имеет смысл этот кусок написать целиком на awk и не страдать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.