LINUX.ORG.RU
ФорумAdmin

помогите с sed


1

1

Добрый день!

Имеется файл dhcpd.leases плана:

lease 192.168.1.249 {
  starts 2 2012/05/29 13:36:14;
  ends 2 2012/05/29 19:36:14;
  tstp 2 2012/05/29 19:36:14;
  binding state free;
  hardware ethernet 00:f4:b9:36:67:ba;
  uid "\001\000\364\2716g\272";
}
lease 192.168.1.250 {
  starts 2 2012/05/29 14:04:09;
  ends 2 2012/05/29 20:04:09;
  tstp 2 2012/05/29 20:04:09;
  binding state free;
  hardware ethernet d4:20:6d:29:d6:d7;
  uid "\001\324 m)\326\327";
}

Нужно удалить определенную конструкцию из файла для определенного IP Т.е. имеется переменная $ip и нужно удалить строки начиная с lease $ip и заканчивая ближайшей }

Заранее спасибо!



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

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

Спасибо!

вот только выдает:

sed: -e выражение #1, символ 6: незавершенное адресное регулярное выражение как это исправить?

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

Вот скрипт:

#!/bin/bash
awk '/^lease/ { print $2 }' dhcpd.leases > ip.leases
iplist=`cat ip.leases`
for ip in  $iplist
do
ping -c 2 $ip > /dev/null
if [ $? -eq 0 ]
then
echo "$ip up"
else
sed  /lease $ip/,/}/d   dhcpd.leases
echo "$ip remove"
fi
done

Собственно вот команда полностью: sed /lease $ip/,/}/d dhcpd.leases

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

Попробуйте взять в кавычки:

sed  "/lease $ip/,/}/d"   dhcpd.leases

entony
()
Ответ на: комментарий от leha7hostel

Если не сложно объясните пожалуйста эту конструкцию :

/lease $ip/,/}/d

особенно не понятен участок с запятой

Спасибо!

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