0
リースIP「192.168.21.100」、ハードウェアイーサネット「14:10:9f:f2:1d:00」とクライアントホスト名「2015cmoran-2」を抽出する必要があります。 。複数の行を1つにまとめて単語を抽出するAwk unix
そしてそれは、この
"192.168.21.100" のように1行にする必要があり、 "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の/; // g '| sedの/ "// g"は 'sed '/ [;"] // g'/var/dhcpd.leases'と書くことができます –