2

大きなファイルから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

4

5 に答える 5

6

試す:

grep -io '[0-9a-f]\{12\}' file.txt > macs.txt
于 2012-04-25T14:42:45.850 に答える
2
((([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
于 2019-06-19T13:34:38.940 に答える
1

使用する1つの方法sed

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

結果:

00aa11bb22cc
aa11bb22cc33
于 2012-04-25T14:43:13.250 に答える
0

egrepは機能します:

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

grepが正規表現を処理するための2つのオプションがあります。

grep -e 

grep -E

それらの1つはegrepに等しく、私は今あなたがどちらを知っていると思います。:)

于 2012-04-26T15:02:09.280 に答える
0

このコマンドラインは、通常のファイルからすべてのMACアドレスを抽出します。macOSで動作します。

通常のファイルからMACアドレスを抽出します。この例では、通常のファイルfile.txtにMACアドレスなどの情報が混在しています。次のコマンドはそれらを抽出し、macs.txtファイルに保存します。

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

于 2020-09-07T14:28:46.240 に答える