GNU/Linux >> Znalost Linux >  >> Linux

Tisk mac adresy do souboru

ifconfig vypíše informace o vašich rozhraních, včetně MAC adresy:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:289748093 errors:0 dropped:0 overruns:0 frame:0
          TX packets:232688719 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3264330708 (3.0 GiB)  TX bytes:4137701627 (3.8 GiB)
          Interrupt:17 

HWaddr je to, co chcete, takže můžete použít awk pro filtrování:

$ ifconfig eth0 | awk '/HWaddr/ {print $NF}'
00:11:22:33:44:55

Přesměrujte to do souboru:

$ ifconfig eth0 | awk '/HWaddr/ {print $NF}' > filename

Zde je moderní metoda Linuxu:

ip -o link show dev eth0 | grep -Po 'ether \K[^ ]*'

V té ifconfig je to moderní již dlouho není podporován ve prospěch ip z iproute2 balíček a to grep-P volba pro regulární výrazy perlu pro kladné tvrzení o nulové šířce.

grep -o je dobré pro extrakci textu. sed se k tomu tradičně používá, ale tvrzení o nulové šířce ve stylu perl považuji za jasnější než substituční příkaz sed.

Ve skutečnosti nepotřebujete -o (jeden řádek) na ip , ale raději jej používám při extrahování síťových informací, protože mi připadá čistší, protože má jeden záznam na řádek. Pokud provádíte složitější shody nebo extrakce (obvykle pomocí awk ), -o je nezbytný pro čistý skript, takže v zájmu konzistence a společného vzoru jej vždy používám.


#! /bin/sh

/sbin/ifconfig eth0 | perl -ne 'print "$1\n" if /HWaddr\s+(\S+)/' >file

Existují další nástroje, které by mohly odstranit MAC adresu z ifconfig výstup, samozřejmě. Mám prostě rád Perl.


Linux
  1. Pochopení časových razítek souborů Mac

  2. Získání MAC adresy

  3. Vytiskněte předchozí řádek, pokud je splněna podmínka

  1. Jak vytisknout výstup příkazu Linuxu do souboru?

  2. Jak mohu přiřadit IP podle MAC adresy v dhcpd

  3. zobrazit IP adresu brány při provádění příkazu ifconfig

  1. Jak pěkně vytisknout soubor JSON v terminálu Linux

  2. Najděte MAC adresu v Ubuntu 21.10

  3. Nastavení trvalé adresy Mac v Ubuntu 14.04?