Я хочу настроить псевдоним или скрипт, который позволит мне показать привязки DHCP, которые имеет dnsmasq.
$ cat /var/lib/misc/dnsmasq.leases
1411349054 08:11:96:e9:52:ec 192.168.1.96 W11837894 *
1411413528 b4:b6:76:0c:c9:4d 192.168.1.46 root-HP-9470m *
1411263016 00:1b:21:0e:f2:bd 192.168.1.219 root-Dell-DM061 *
1411357237 00:01:2e:4d:49:bd 192.168.1.31 ata *
1411263041 00:30:67:d2:25:65 192.168.1.51 root-TA75M *
Я могу взять 1-й столбец и сделать дату -d @ 1411349054 (или awk '{print $1}' /var/lib/misc/dnsmasq.leases | awk '{ print strftime("%c")}')
Sun Sep 21 20:24:14 CDT 2014
Я ищу способ в awk для форматирования например:
Sun Sep 21 20:24:14 CDT 2014 08:11:96:e9:52:ec 192.168.1.96 W11837894 *
Mon Sep 22 14:18:48 CDT 2014 b4:b6:76:0c:c9:4d 192.168.1.46 root-HP-9470m *
У кого-нибудь есть идеи?
Эта команда awk должна выполнить трюк,
awk '{if ($1) {$1=strftime("%c",$1); print}}' /var/lib/misc/dnsmasq.leases
Старая версия, которая выведет эпоху Unix на пустые строки:
awk '{time=$1; $1=""; print strftime("%c",time) $0}' /var/lib/misc/dnsmasq.leases
Трюк заключается в применении strftime только к соответствующему аргументу и распечатать все остальное как есть. Я взял этот бит из этого вопроса. (Так как ваша функция strftime работала правильно, я предполагаю, что у вас установлен gawk. Если нет, сделайте sudo apt-get install gawk.)