JSONやSQLの整形をターミナルで超簡単にできるようにする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ログに出力された改行なしのJSON文字列やSQLを整形して見たいときありますよね。

私は今までこのようなコマンドを実行していたのですが、

$ echo '{"name":"igarashi","div":"CX"}' | jq
{
  "name": "igarashi",
  "div": "CX"
}
$ echo 'SELECT * FROM table;' | npx sql-formatter-cli
SELECT
  *
FROM
  table;

ちょっと設定をするだけでこの様に実行できるようになりました。

$ jsonf '{"name":"igarashi","div":"CX"}'
{
  "name": "igarashi",
  "div": "CX"
}
$ sqlf 'SELECT * FROM table;'
SELECT
  *
FROM
  table;

これなら整形したい文字列を一番最後に入力するだけでいいので楽ですね。

設定

fish

fish shellで引数を取りたいときは関数を使います。

config.fish

function jsonf
  echo $argv | jq
end
function sqlf
  echo $argv | npx sql-formatter-cli
end

zsh

zshは無名関数が使えるのでaliasで記述することができます。(と @janus_wel さんに教えてもらいました)

.zshrc

alias jsonf='(){echo $1 | jq}'
alias sqlf='(){echo $1 | npx sql-formatter-cli}'

まとめ

よく使うコマンドは短いコマンドにして楽しましょう。