7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

dumpされた改行テキスト入りのCSV(TSV)ファイルを、Excelでいい感じに並べた話

Last updated at Posted at 2020-07-08

背景

「このダンプファイル見といて」
「あ、ファイルダンプしといたんでいい感じにしといてもらっていいですか」

エンジニアならまあよくある話。しかし。。。

これ「テキストの項目に改行入っとるやんけ。。。」

って絶望することはままある。

絵面で言うとこういう状況

エクセルにCSV(TSV)ファイルとかをインポートしようとして。。。
image.png

見事にこうなる。うえぇぇ。テキスト型のカラムの中に有る改行のせいでガッタガタで一列に収まらん。。。
image.png

そんなわけで、多分これからも度々困る自体に備え、備忘を残す次第。あと我ながら職人芸を披露したなと勝手な自己満足を披露したい次第。

やったこと

初手:手当り次第に改行を消す

とりあえず改行があってはにっちもさっちもいかんということで、悪さをする改行を、正しい改行もろとも消す。
といってもただ消したら復活ができないので、あとで戻せるよう[[br]]みたいな適当な記号に置換しておく。

サクラエディタを使うとこんな感じ
image.png

結果はこんな感じになる
image.png

2手目:行頭1項目目であるはずの箇所を正規表現で気合で抜き出す

テキストファイルは全ての改行が[[br]]で置換されて1行のテキストファイルに。これを改めて、1レコード1行の形式に直すため、行頭1項目目に相当する箇所を正規表現で抜き出す。ここはちょっと腕の見せ所。幸い今回は、行頭1項目目は「14桁の整数」出会ったことが判明したのでそのように正規表現を使う。

(手前の元々改行だった[[br]])+(15桁の整数)をサクラエディタで置換するとこんな感じ。
image.png

さすれば無事に1レコード1行のファイルが完成。
image.png

3手目:エクセルにインポート

こうなってしまえばエクセルにインポートするのも容易いこと。おおお、冒頭の絶望が嘘のようだ。
image.png

エクセルのインポート結果
image.png

最終手:セル内の改行もどきをちゃんとした改行に戻す

これもちょっと癖のあるテクニックなので覚えておきたいところ。エクセルは「Ctrl+J」でセル内の改行を生み出せるという謎の呪文がある。
これで改行もどき[[br]]を置換する。さらば。
image.png

置換結果
image.png

できたーーーーーーーーーーーーーーーーーー。くーーーーーーーーーーーーーーーーー。

おしまい

こうした日常に潜む、エンジニアの苦悩を襲うタスクを抹殺していきたい。

7
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
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?