Если перед отметкой времени есть пустая строка, вы можете использовать простую
perl -pe 'chomp unless /^$/'
Если новых строк нет, вам нужно запомнить предыдущую строку.
perl -pe 'chomp; print "\n" if $. > 1 && /^timestamp=/; print }{ print "\n"'
Неправда, что нет никакой разницы.
ifup
и ifdown
читаются как /etc/network/interfaces
, и помимо включения и выключения интерфейсов, они также выполняют множество скриптов в /etc/network
, которые предоставляют перехватчики для различных вещей (, таких как DHCP ).
С другой стороны,ip link...
(новый вариант )иifconfig... up/down
(старый вариант )задают состояние интерфейса напрямую, не выполняя никаких дополнительных действий, которые могут потребоваться, если интерфейс поднимается и вниз.
Так что, если ifdown
не работает, ваша система, вероятно, не настроена на использование классической /etc/network/interfaces
системы (, например, потому что она использует systemd
, которая делает все по-другому ), или есть ошибка где-то в каком-то скрипте, который выполняется первым, или, возможно, какая-то другая причина.
Нет никакой разницы между новыми ip
командами (новый способ ведения дел )и старыми -раньше были ipconfig
, netstat
, arp
и route
. См. здесь для сравнения:
https://p5r.uk/blog/2010/ifconfig-ip-comparison.html
https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/
Тем не менее, ifup
и ifdown
являются частью сетевых сценариев, выполняющих больше, чем каждая отдельная команда, перечисленная выше. Возможно, вашей сетью управляет злой или другой сетевой менеджер. Попробуйте
rpm -qf `/sbin/ifdown`
, чтобы узнать, не является ли ifdown
частью какого-либо пакета управления сетью -, это зависит от дистрибутива.
Возможно, вам нужно изменить способ управления сетью с помощью средства настройки сети.