CIOが増殖中

イメージ
急速充電器が増えてきて面倒…  スマートフォン、ノートPCなど増えてきて、標準の充電器ってかさばるし、持ち運ぶのも邪魔。 そこで、電源タップ付きのものや、小形でMacbookProに充電できるものを探して購入。 気づいたら、CIO製品が増加していた。 持ち運び用 (1)  https://amzn.to/4d83MBV (2)  https://amzn.to/3P3B9xZ 自宅用 (3)  https://amzn.to/42WLezS どれも、それ程かさばらず、重宝しています。 電源タップが必要な場合は、(2)を持っていくけれど、ほとんどの場合は(1)のみでOK。 1ポートなら67W出力可能なので、全く問題なし。 2ポート以上使用しても、45W出力してくれるので、困ることはない。 (2) の場合は、延長ケーブルも持って歩くことが多いかなぁ。 1m程のケーブルが有ると、電源が取りにくい場所でも、なんとかなる。 という感じです。 ゼロハリのアタッシュケース自体が重いので、なるべく軽くするために(1)が常用です。 UGREENとかAnkerとかも良さそうなだけど、今の所CIOばかり増殖していますねぇ。

これは使える!テキストツール csvq

GO製 csvq

いつも使えそうなツールをチェックしているのだけれど、久々に使えるものを入手した。

csvファイルをDBのように扱い、sqlで操作可能にする。

インストールはBinaryをダウンロードしてPATHの通ったところに置いて完了。

ちなみに、他の人はどうしているのか分からないけれど、どこに置くのかというのはいつも悩ましい所。
  • /usr/bin
  • /usr/local/bin
あたりが、多いんでしょうか…。
まあ、マルチユーザの場合、パッケージなどで入れたものは、/usr/bin以下に入るだろうし、buildするタイプなどで作法の良いものなら/usr/local/binなどに入れるのが普通だろうなぁ。
 自分の場合は、個人で使用する場合や自作のもので、一時的に使うモノは、~/bin というフォルダを作成していて、ここにポイッと入れて動作テストなどしている。
もちろん、PATHを通しておく必要が有る…。

さて、解凍してcsvqをbin以下に入れれば即実行できる。

こいつ強力すぎる!

実際に試してみると、こいつは便利だ。
試しに次のようなデータを作成してテストしてみた。(user.csvとscore.csv)

データを一覧したければ、
$ csvq
> select * from user;

+----+--------+-----+-------------+
| id |  name  | age |     tel     |
+----+--------+-----+-------------+
| 1  | user1  | 20  | 01011112222 |
| 2  | user2  | 21  | 01011113333 |
| 3  | user3  | 22  | 01011114444 |
| 4  | user4  | 23  | 01011115555 |
| 5  | user5  | 24  | 01011116666 |
| 6  | user6  | 25  | 01011117777 |
| 7  | user7  | 26  | 01011118888 |
| 8  | user8  | 27  | 01011119999 |
| 9  | user9  | 28  | 01022221111 |
| 10 | user10 | 29  | 01022222222 |
+----+--------+-----+-------------+
まんま、mysqlコマンドと同じような表示をしてくれる。
> select * from score;
+----+---------+-------+------------------+
| id | user_id | score |       date       |
+----+---------+-------+------------------+
| 1  | 2       | 100   | 2019/3/12 10:00  |
| 2  | 4       | 200   | 2019/3/12 10:15  |
| 3  | 6       | 300   | 2019/3/12 10:30  |
| 4  | 8       | 400   | 2019/3/12 10:45  |
| 5  | 10      | 500   | 2019/3/12 11:00  |
| 6  | 1       | 600   | 2019/3/12 11:15  |
| 7  | 3       | 700   | 2019/3/12 11:30  |
| 8  | 5       | 800   | 2019/3/12 11:45  |
| 9  | 7       | 900   | 2019/3/12 12:00  |
| 10 | 9       | 1000  | 2019/3/12 12:15  |
+----+---------+-------+------------------+
この2つよく有るパターンのテーブルです。

でもって、joinしてみる。
> select * from user join score on user.id = score.user_id order by score desc;

+----+--------+-----+-------------+----+---------+-------+------------------+
| id |  name  | age |     tel     | id | user_id | score |       date       |
+----+--------+-----+-------------+----+---------+-------+------------------+
| 1  | user1  | 20  | 01011112222 | 6  | 1       | 800   | 2019/3/12 11:15  |
| 5  | user5  | 24  | 01011116666 | 8  | 5       | 800   | 2019/3/12 11:45  |
| 10 | user10 | 29  | 01022222222 | 5  | 10      | 700   | 2019/3/12 11:00  |
| 8  | user8  | 27  | 01011119999 | 4  | 8       | 600   | 2019/3/12 10:45  |
| 9  | user9  | 28  | 01022221111 | 10 | 9       | 600   | 2019/3/12 12:15  |
| 4  | user4  | 23  | 01011115555 | 2  | 4       | 500   | 2019/3/12 10:15  |
| 2  | user2  | 21  | 01011113333 | 1  | 2       | 400   | 2019/3/12 10:00  |
| 7  | user7  | 26  | 01011118888 | 9  | 7       | 300   | 2019/3/12 12:00  |
| 6  | user6  | 25  | 01011117777 | 3  | 6       | 200   | 2019/3/12 10:30  |
| 3  | user3  | 22  | 01011114444 | 7  | 3       | 100   | 2019/3/12 11:30  |
+----+--------+-----+-------------+----+---------+-------+------------------+
うわー、テストするだけなら、これで十分かも…。
ひょっとすると、講義でも使えるかもしれない。
DB無しで、csvファイルだけ用意して、練習するとか…。良いかも!

 とりあえず、sum( ) や avg( ) などは使えるし、他にも関数は大量に用意されている。
マニュアルを見ると、こんなことまで対応しているのかと驚く。
https://mithrandie.github.io/csvq/

もちろん、selectだけでなく、insert/updateなど一通り揃っているので、手軽にテストできそう。

他には、UTF-8にもShift-JISにも対応しているようだし、JSONも扱えるらしい。
区切り記号もカンマ以外にもOKなので、テキストファイルに落とせれば何とかなりそうな気配。

SQL使いたいけど、DBインストールできない人とか、DBから持ってきたデータで検証したいとかという目的にも行けそう。
子プロセスで実行して、SQLiteの代わりに使うとか…。パイプで処理繋いでやれば何とでもなりそうで期待大(笑)


コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

VirtualBoxでUSBを使う方法が分かった!