Я хочу установить псевдоним или сценарий, который позволит мне, показывают, что привязка 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 'NF{ $1=strftime("%c", $1);}1' file
ИЛИ
$ awk 'NF>1{ $1=strftime("%c", $1);}1' file
Monday 22 September 2014 06:54:14 AM IST 08:11:96:e9:52:ec 192.168.1.96 W11837894 *
Tuesday 23 September 2014 12:48:48 AM IST b4:b6:76:0c:c9:4d 192.168.1.46 root-HP-9470m *
Sunday 21 September 2014 07:00:16 AM IST 00:1b:21:0e:f2:bd 192.168.1.219 root-Dell-DM061 *
Monday 22 September 2014 09:10:37 AM IST 00:01:2e:4d:49:bd 192.168.1.31 ata *
Sunday 21 September 2014 07:00:41 AM IST 00:30:67:d2:25:65 192.168.1.51 root-TA75M *
Эта команда 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
.)