Форум русскоязычного сообщества Ubuntu


Автор Тема: Скрипт для копирования слова из строки и вставки в в другой файл.  (Прочитано 792 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн eserden

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Доброго времени суток!
Идея скрипта брать из текстового файла разделенного пробелами значения переменныхи ставлять их в форму. формируя другой фалик
Есть вот такой скрипт:
#!/bin/bash
OUTFILE=/etc/ipmac_out
IPMACLIST=/etc/ipmac

while read line;
do
HOST=$line | awk '{print $1}'
IP=$line | awk '{print $2}'
MAC=$line | awk '{print $3}'

echo "host ${HOST} { " 1>>$OUTFILE
echo " hardware ethernet  ${MAC}"  1>>$OUTFILE
echo  "fixed-address  ${IP}" 1>>$OUTFILE
echo "}" 1>>$OUTFILE
echo  1>>$OUTFILE
done < $IPMACLIST
Текст файла /etc/ipmac:
(Нажмите, чтобы показать/скрыть)

Скрипт отрабатывает без ошибок.

И выходной фал такого содержания.
(Нажмите, чтобы показать/скрыть)

А должно получатся  что то вроде :
(Нажмите, чтобы показать/скрыть)

Понимаю что  неправильно написана строки :

HOST=$($line | awk '{print $1}')
IP=$($line | awk '{print $2}')
MAC=$($line | awk '{print $3}')

но как написать их правильно не понимаю.

Прошу помощи.
« Последнее редактирование: 12 Мая 2014, 19:15:57 от eserden »

Krjd

  • Гость
eserden,
если я правильно понял то должно быть как-то так
HOST=$(echo $line | awk '{print $1}')
IP=$(echo $line | awk '{print $2}')
MAC=$(echo $line | awk '{print $3}')


Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (Bash) [Выделить]
#!/bin/bash
OUTFILE=/etc/ipmac_out
IPMACLIST=/etc/ipmac

while read HOST MAC IP ;
do
echo "host ${HOST} {
 hardware ethernet ${MAC} ;
 fixed-address ${IP} ;
}

" 1>>$OUTFILE
done < $IPMACLIST
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

Страница сгенерирована за 0.049 секунд. Запросов: 25.