LoginSignup
3
1

More than 3 years have passed since last update.

logファイルを整形・加工 (運用・調査で役立つ)

Last updated at Posted at 2020-04-25

正規表現

規則性がある形にまずしないと何も始まらない。
正規表現を使ってまず加工しやすい形を作る

・以下のようなファイルがあるとする

target=dfaaaaaaaaaaaaaffffsafdsfffsafsdaff<abc>......</abc>
other=asdfaaaaaaaaaaaaaffffaaaaffadddfdafff<abc>......</abc>
other=asdfaaaaaaaaaaaaaffffaaaafaaadfdsfsdafasfffff<abc>......</abc>
other=asdfaaaaaaaaaaaaaffffaaaaffdsdaffdffff<abc>......</abc>
target=dfaaaaaaaaaaaaaffffsafdsfffasff<abc>......</abc>

ありそうな抽出1

取り出したい値が<abc>タグの中

テキストエディタで正規表現を有効にして削除(置換) 終端文字を指定

.*\<abc>

VSCODE例
image.png

この後、</abc>を削除すれば取り出せる

ありそうな抽出2

取り出したい値が最初に出現するffffの前まで 開始文字を指定
ffff.*$

image.png

その他

複数スペースを一つのスペースにしたい
 +   # (+の前に半角スペースを入れてます)

image.png

無駄な改行がある時に改行を消したい
\n+ を \n で置換

image.png

スプレッドシート、EXCEL

表形式で見る時や、比較などに便利。

表形式で見る

区切り文字があればそれをタブに置換してEXCELに貼ればOK

image.png

↓ 貼り付け

スプレッドシート
image.png

式を使う

一つのファイルをあるを分割して複数ファイルに分割したい

以下のCSVを県単位でファイルに吐き出したい。

out.csv
県名,店舗名,住所
福岡県,aaaaa,xxxxxxxx
福岡県,bbbbb,xxxxxxxx
福岡県,ccccc,xxxxxxxx
福岡県,ddddd,xxxxxxxx
佐賀県,eeeee,xxxxxxxx
佐賀県,fffff,xxxxxxxx
佐賀県,ggggg,xxxxxxxx
佐賀県,hhhhh,xxxxxxxx
・
・
・

コマンドはこれでいけるとわかった。

terminal
cat out.csv | grep '福岡県' > 福岡県.txt

でも47都道府県分コマンド作るの面倒だな・・
そんな時はスプレッドシートを使うといい

A列に都道府県
B列に式 ="cat out.csv | grep '"&A1&"' > "&A1&".txt"
を入れて47都道府県分コピーすればOK

image.png
image.png

ファイルの重複行を除外する

aaa.txt
aaa
aaa
ccc
ccc
ddd
gfgf
ddd
fff
fff
aaa

以下コマンドを実行

 sort aaa.txt | uniq 

重複を除外しユニークになっている

result.txt
aaa
ccc
ddd
fff
gfgf

その他

役に立ちそうなものがあれば追加していきます。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1