0
我需要提取租約IP「192.168.21.100」,硬件以太網「14:10:9f:f2:1d:00」和客戶端主機名「2015cmoran-2」 。awk unix將多行分爲一行並提取文字
而且它需要在這樣一行
「192.168.21.100」, 「14:10:9F:F2:1D:00」, 「2015cmoran-2」
lease 192.168.21.100 {
starts 4 2017/03/02 05:43:15;
ends 4 2017/03/02 17:43:15;
cltt 4 2017/03/02 05:43:15;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 14:10:9f:f2:1d:00;
uid "\001\024\020\237\362\035\000";
client-hostname "2015cmoran-2";
}
server-duid "\000\001\000\001 IL\264x\243Q\031O\032";
我做這些,但我不認爲這是做
cat /var/dhcpd.leases | sed 's/;//g' | sed 's/"//g' | awk '{for (I=1;I<=NF;++I) if ($I == "client-hostname") {print $2};}'
cat /var/dhcpd.leases | sed 's/;//g' | sed 's/"//g' | awk '{for (I=1;I<=NF;++I) if ($I == "ethernet") {print $3};}'
'cat | sed'和'sed | awk'都是普通反模式的變體[無用的'cat'](http://www.iki.fi/era/unix/award.html)。除非特別連接多個輸入文件,並且很少在同一管道中多於'grep','sed'或Awk,否則應該不需要出現'cat'。 – tripleee
'cat /var/dhcpd.leases | sed's /; // g'| sed's /「// g''可以寫成'sed's/[;」] // g'/ var/dhcpd.leases' –