テキストファイルのMacアドレスで部分文字列を検索して置換する

テキストファイルのMacアドレスで部分文字列を検索して置換する

以下は、変更するファイルの一部です。 awk または sed を使用できます。すべてのユーティリティはパターンマッチングに適しています。

mgad 1
m-id         50
rf-chan-id   1
base-station-id 00:a0:bc:0c:1b:c1
....
....
mgad 2
....
base-station-id 00:a0:bc:0c:1b:c2
....
....
mgad 3
....
base-station-id 00:a0:bc:0c:1b:c3
....
....
mgad 4
base-station-id 00:a0:bc:0c:1b:c4

ファイルの複数行にある5番目の場所のmacアドレスを00:a0:bc:0c:XX:c3から00:a0:bc:0c:18:c3まで編集する必要があります。 PN:5番目の数字は可変である可能性があるため、「18」に変更する必要があります。

私はこれを試しました:

sed -En ' s/^\( base-station-id.* [0-9A-Fa-f]{2}\:[0-9A-Fa-f]\:[0-9A-Fa-f]\:[0-9A-Fa-f]\:\)[0-9A-Fa-f]+\(\:.*\)$/\118\2/p; '

Mac アドレスの部分文字列に必要な変更を加えた正しい正規表現パターンのマッチングと置換をお手伝いします。

答え1

18前の部分をキャプチャします。 MACの5番目の位置に2つの文字を許可し、後部をキャプチャして最初のキャプチャグループ、テキスト、および2番目のキャプチャグループに置き換えます。

sed 's/\(base-station-id ..:..:..:..:\)..\(:..\)/\118\2/' < input > output

関連情報