簡體   English   中英

Mac 地址的 Grep 正則表達式

[英]Grep Regex for Mac Address

我需要使用正則表達式從大文件中提取 mac 地址的幫助。

這是文件的格式:

Wed Apr 25 10:15:32 EDT 2012 Client: 00aa11bb22cc mac
Wed Apr 25 10:15:34 EDT 2012 Client: aa11bb22cc33 pc

這是我目前正在嘗試但沒有運氣的內容:

grep -io '[0-9a-f]{12}' file.txt > macs.txt

有任何想法嗎? 我只想將 mac 地址部分提取到名為macs.txt的文件中。

嘗試:

grep -io '[0-9a-f]\{12\}' file.txt > macs.txt
((([0-9a-fA-F]{2})[ :-]){5}[0-9a-fA-F]{2})|(([0-9a-fA-F]){6}[
:-]([0-9a-fA-F]){6})|([0-9a-fA-F]{12})

我根據我知道的 MAC 地址的以下表達式對其進行了測試。 取決於系統、固件和應用程序的語法。

F3 D3 A4 C1 99 E2
F3:D3:A4:C1:99:E2
F3-D3-A4-C1-99-E2
f3 d3 a4 c1 99 e2
f3:d3:a4:c1:99:e2
f3-d3-a4-c1-99-e2
f3d3a4 c199e2
f3d3a4:c199e2
f3d3a4-c199e2
f3d3a4c199e2
F3D3A4C199E2

使用sed一種方法:

sed -e 's/^.*\([a-fA-F0-9]\{12\}\).*$/\1/' file.txt > macs.txt

結果:

00aa11bb22cc
aa11bb22cc33

egrep 可以工作:

egrep -io '[0-9a-f]{12}' file.txt > macs.txt

grep 有 2 個選項來處理正則表達式,

grep -e 

grep -E

其中之一等於 egrep,我想現在您知道是哪個了。 :)

此命令行將從常規文件中提取所有 MAC 地址。 它適用於 macOS。

它從常規文件中提取任何 MAC 地址。 在示例中,常規文件file.txt具有混合信息,包括 MAC 地址。 以下命令將提取它們並將它們保存在macs.txt文件中。

grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' file.txt > macs.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM