ログから任意の文字列を抽出するのに便利なExcelの関数を紹介します。
今回は例として、WindowsServerのSoftwareDistribution.logからHotfixナンバー「KB〜」を抽出してみます。ログの中で「KB~」がある位置がバラバラなので、スペースを区切り位置にして分割するやり方は上手くいきません。
MID関数とは、文頭から何文字目にある文字から数文字分を抜き出すことができる関数です。
この関数を使用すれば、文頭から何文字目に「KB〜」があるかを調べるだけで「KBxxxxxxxx」のみを抜き取ることができます。
抽出手順
- テキストエディタでログを開き、grepで”KB”を抽出する
- 1の結果をExcelに転記する
- MID関数を使う
- 重複したHotfixは重複の削除で整理する
最後に重複するナンバーを削除します。
列を選択>メニューの「データ」>「重複の削除」>OK
MID関数のフォーマットは以下になります。
=MID <探す場所>,<開始位置>,<検索ワード>
ログ文が長い場合は、開始位置を数えるのが面倒な為、FIND関数を使用します。
開始位置を入力するセルには関数式「=FIND(“KB”,E2)」を入力します。
Hotfix入力するセルには関数式「=MID(E2,AE2,AF2)」を入れれば「KB〜」に変換されます。
次のような意味合いになります。
「この文字列の中から、先頭の98文字目から9文字分だけ取り出す」