SQLファイルを手作業で編集する雨の日

=====
(最下部に、追加訂正あり)
=====

 ほんとうは昨日の晩にオンデマンドで見て衝撃を受けた、ひさびさの特大級なんじゃこりゃ映画「アベンジャーズ/インフィニティーウォー」の話でも書きたいところだが、何を書いたらいいのかわからないほどもったいない作品だったので(名づけて大量消費映画)、後日に譲ろうと思う。

 今日は雨強かったこともあってパソコンに向かう時間が長かったので、先日からとりかかっているブログの過去ログ編集と、その進み具合について。

 まず、SQLファイルはNucleusというシステムを閉じる前にバックアップ機能を通じて出力してあった。ほかにMySQLで出力したものもあるが、そちらはかなりサイズが大きいので、Nucleusのほうで出しておいたファイルから、再活用に関係ありそうな場所のみMac OSのコマンドラインからgrepで抜き出し、それを各種エディタで編集して「日付、投稿者、タイトル、本文、コメント」などを整理していた。これは昨日の昼までの話。

 今日から、さくらのブログほか多くのブログで読みとりに対応しているMT形式ログへの整形と編集をおこなってみた。これがだいたい8割〜9割くらい終わっている。あとは細部を詰めてみて、きちんとしたログファイルになったらさくらのブログにでもお試しインポートしてみようか、という段階なのだが…ここで、まさかの盲点。

 Nucleusから出力して作業してきたログファイルの日付形式は、YYYY-MM-DDつまり、2018-09-25なのだが、さくらのインポートに使うには、DD/MM/YYYYつまり25/09/2018でなければならないらしい。それに合わせないと無効らしく、おためしで3ファイル分をインポートしてみたところ作業をした日時で載ってしまった。このままでは使えない。

 記事本文で400件強、コメントで200件前後のファイルがあり、600件も手作業で日付を変えるのはごめんである。しかたないのでファイル内のパーツ並べ替え編集にも使っていたAppleの公式表計算ソフトNumbersがふたたび登場。だがこの日付変更候補にはDD/MM/YYYYはない。ならばと日付を分解してその数字部分の入れ替えと整形を試みたが、入力された数字を数字として処理するので、03を3といった具合に0を勝手に省略する。では仕方ないからと、テキストとして認識するようにフィールド設定を変更すると、数字を区切っていたタブをタブのままひとつのセルに入れてしまう。

 Numbersが無理ならGoogleスプレッドシートはどうだと思ったのだが、そちらでも日付変更候補にDD/MM/YYYYはなかった。

 どうも、Excelならば、日付形式変換が豊富らしいのだが、以前に使っていたノートには古いExcelがはいっているものの、普段使いのほうには、はいっていない。わざわざこの用件のために古いノートを立ち上げるのか…仕方ない、やる…か?

 こういった作業は楽しいのだが、つくづく「もう少し普段から学んでいれば」と、思わずにいられない。
 明日は外出の用事があるので、この件はあまり進まないかもしれない。

=== 翌日、追加訂正 ===
 なんと、作業もだいぶ進んでからログをよくよく見ていたら、大きな間違いに気づいた。お恥ずかしいかぎりだが、DD/MM/YYYYではなく、MM/DD/YYYYらしい。これでやり直してみることに。

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Comments

おそらくawkコマンドを使えばなんとかできるかと思います
-や/はセパレーターと呼ばれるもので、awkのデフォルトではこれが半角スペースに設定されているのでawk -F-に設定する
あとはawkの機能で中身を読み取って、順番を入れ替える + セパレーターを/にする

echo “2018-09-26” | awk -F- ‘{print $3″/”$2″/”$1}’

ただ、ログファイルには日付以外の内容も含まれていると思うので、if文を使ってその行だけ該当するようにする必要があります
もし日付の行を1行まるまる貼付けていただければもう少し力になれるかと思います

ありがとうございます!!
ちょっと調べてみますね。またご報告します(^^)。

coffeeさん、ありがとうございました。
awkコマンドも検討してみたのですが、やはりわたしには少し時間がかかりそうでした。ほかにも、大昔にやったはずのAppleScriptやら、いろいろ考えたのですが、なかなか思い出せず、思うようにいきません。けっきょく、昨日やりかけておりました方法(AppleのNumbers上で、列のドラッグで入れ替え)を試してみました。

数字として認識されると0がとれてしまうので、数字の前後に余計な記号をつけてから順番を入れ替え、最後に記号を除去する方法で、配置換えができました。

これでひとまず前進です。日付の件がクリアできれば、あとは内部のデッドリンクなどをチェックしていけば、再公開できるかもしれません。

たいへんお騒がせしました。
だいぶ作業も進んで、最後の見直しをしようと思いましたところ、重大な勘違いがありました。DD/MM/YYYYではなく、MM/DD/YYYYでいいようです。

ずいぶんと回り道してしまいましたが、これでようやく、一歩進めます。

Sorry, the comment form is closed at this time.