GNU/Linux >> Linux の 問題 >  >> Linux

MACアドレスをファイルに出力

ifconfig MAC アドレスを含むインターフェースに関する情報を出力します:

$ 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 awk を使用できます フィルタリングするには:

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

それをファイルにリダイレクトします:

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

これが最新の Linux の方法です:

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

そのifconfigでモダンです ip を支持して長い間廃止されてきました iproute2 から パッケージ、およびその grep -P を持っています ゼロ幅の正の後読みアサーション用の perl 正規表現のオプション。

grep -o テキスト抽出に適しています。 sed は伝統的にそのために使用されますが、perl スタイルのゼロ幅アサーションは sed 置換コマンドよりも明確です。

-o は実際には必要ありません (oneline) ip へのオプション 、しかし、ネットワーク情報を抽出するときにそれを使用することを好みます.より複雑な一致または抽出を行う場合 (通常は awk を使用) )、-o きれいなスクリプトには不可欠なので、一貫性と共通のパターンのために、私は常にそれを使用しています.


#! /bin/sh

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

ifconfig から MAC アドレスを削除できるツールは他にもあります もちろん、の出力。 Perl が好きです。


Linux
  1. MAC アドレスの取得

  2. WiFi ネットワーク インターフェイスの MAC アドレスを取得する方法を教えてください。

  3. シェル スクリプトを使用して MAC アドレスを取得する

  1. Linuxコマンド出力をファイルに出力するには?

  2. dhcpd で MAC アドレスによって IP を割り当てるにはどうすればよいですか

  3. ifconfig コマンドの実行時にゲートウェイ IP アドレスを表示

  1. LinuxターミナルでJSONファイルをきれいに印刷する方法

  2. Ubuntu21.10でMACアドレスを検索する

  3. Ubuntu 14.04で永続的なMacアドレスを設定しますか?