おはようございます。こんにちは。こんばんは。
ミッド(@mid_v_lab)です
最近とある企業の案件に参画中です。
どんな仕事やるのかな~とわくわくしてますが、ご担当の方が忙しすぎて私に仕事を振れない状態です(汗)
やることなさすぎて、sakura editor(サクラエディタ)の便利な使い方をチマチマ調べていました。
その中で、これを知っていれば作業が爆速化するぞ!というものを3つご紹介します。
- 対象キーワードに一致した行を削除
- 対象キーワードより後ろの文章を抽出
- 外部ツールの実行
尚、サクラエディタのインストール方法や便利な使い方に関しては、下記をご参照ください。
作業が爆速化するように、ぱっぱとご説明します。
①対象キーワードに一致した行を削除
まずは、「対象キーワードに一致した行を削除」です。
こんなことありませんか?
この時に2通りのやり方があります。
- Grep機能を使って、別ファイルに対象キーワードを除外した一覧を抽出する
- 正規表現を使った置換機能を用いて、対象行を消す
今回は余計なファイルを増やさない②側で説明します。
※除外したものも一応取っておきたい場合は、元ファイルを除外したファイルAと除外キーワードのみのファイルBに分けて保存しておきましょう。
実際の画面でご説明します。
こんなファイルがあったとします。
プロキシログっぽい感じのやつです。
ウイルス感染元調査をする場合に、エラー404が多すぎてウザいのでこの行を消したいとします。
※実際には404でアクセスできなかったのも重要なログなのですが、初期トリアージとしてアクセスしてない=原因ではないということで消します。
「Ctrl + R」で置換のメニューを呼び出し、置換前に「.*エラー404.*\r\n」と入力して、念のため「該当行をマーク」で確認すると・・・
うまいこと「エラー404」の行だけ選択できていることが分かります。
このままの状態で、「すべて置換」を選択すると・・・
エラー404を含んだ行が消えて、綺麗になりました。
置換前のキーワードに、
.*対象にしたいキーワード.*\r\n
と入力、置換後を空欄(nul)にすればOKです。
注意点として、別の必要な行が消えないようにユニークなキーワード設定を行う必要があります。
正規表現にチェックを入れることもお忘れなく!
②対象キーワードより後ろの文章を抽出
続いて、「対象キーワードより後ろの文章を抽出」です。
何がしたいかというと、先ほどのログファイルで説明すると、
という時に利用できます。
今回のような綺麗に列が揃っているものは、「矩形(くけい)選択」を用いれば秒で消せるのですが、こんなにきれいに揃っていることはありません。
そこで、先ほど同様、正規表現を用いた置換を使って欲しい部分を抽出していきます。
「Ctrl + R」で置換のメニューを呼び出し、置換前に「(.*)(?=http)」と入力して、念のため「該当行をマーク」で確認すると・・・
「http」より前に部分が選択していることが分かります。一見すると先頭のhも含んでしまっているように見えますが、「すべて置換」を行うと・・・
こんな感じに先頭の「h」は残りますのでご安心ください。
置換前のキーワードに、
(.*)(?=対象にしたいキーワード)
と入力、置換後を空欄(nul)にすればOKです。
注意点として、別の必要な部分以外にマッチィングしないようにユニークなキーワード設定を行う必要があります。
正規表現にチェックを入れることもお忘れなく!
また、対象にしたいキーワードより前の文章を引っ張るには
置換前のキーワードに、
(?<=対象にしたいキーワード)(.*)
と入力、置換後を空欄(nul)にすればOKです。
↓こんな感じです↓
綺麗なURLが取得できましたね。
③外部ツールの実行
最後は「外部ツールの実行」です。
これは正規表現とか置換とか、難しいことは一切利用しません。
なんで私はこれを知らなかったのか・・・くらいなサクラエディタの標準機能です。
「ツール>外部コマンド実行」 or 「Ctrl + F5」を実行すると
こんな画面が起動してきます。
ここにコマンドプロンプトで実行するようなコマンド、例えば「ipconfig /all」などを入力して実行すると・・・
実行結果がサクラエディタに出力されるんですよね。
これは地味に便利。
pingとか実行しても、
実行結果をテキストに吐いてくれます。
証跡としてはテキストベースだと使えないですけど、
- 実行した結果をコピペしたい
- 編集したい
という場合は、使い道は腐る程あると思います。
作業を爆速化する3つの手法でした。
ちなみに正規表現では一部記号はエスケープしないと、正しく認識してくれない場合があります。
対象キーワードに入れてみたけど、うまく対象にマークできなかったという場合が、「正規表現 エスケープ文字」でググってください。
ではでは