nushellもろもろ
record
関連でkey,valuを取り出す方法がわからんかったが、Utility commands for records: values and pairs (counterparts to columns) #7166となっており、今後のバージョンアップに期待。
Splitoff from #6854. Various programming languages with key-value data structures (records) have three methods for extracting and iterating over their stored data: one for listing the keys, one the values, and one for listing tuples of each pair. Nushell, however, only has columns, which matches the former.
0.72が出てました。
Version- try/catch サポート
- Terminalの幅に応じてexpand
これまではtable --expand
でやってたことが、自動でやってくれる。ただterminalの幅が狭いと意味がない。 - リダイレクトサポート
ついついリダイレクトで保存しようとしてが、できるようになった。save …
とか書くよりは早いかな。。。 - mutableな変数が作れるようになった。
- 繰り返し処理に
loop
/while
追加、break
/continue
追加 - クロージャ内ですぐ戻れるよう、
return
追加 - Ver 1.0に向けてbuilt-inコマンドの仕様が大幅に変更
Ver 0.72にしてみました。
念の為、config.nu
とenv.nu
のバックアップをとって、削除してインストールしました。以下新バージョンのnu
起動で、設定ファイルを新規作成。
$ nu
No environment config file found at /home/kawa90/.config/nushell/env.nu
Would you like to create one with defaults (Y/n):
y
Config file created at: /home/kawa90/.config/nushell/env.nu
No config file found at /home/kawa90/.config/nushell/config.nu
Would you like to create one with defaults (Y/n):
y
Config file created at: /home/kawa90/.config/nushell/config.nu
インストールされたenv.nu
は特に変更ないようだ。config.nu
はconfig
($env.config
)が多少変わったようだ。
Ver0.72でdeprecated
になったbuilt-in
コマンド。
〉help commands | where category =~ "deprecated" | reject usage signatures search_terms 11/30/2022 10:51:38 午後
╭───┬──────────────────┬────────────┬──────────────╮
│ # │ name │ category │ command_type │
├───┼──────────────────┼────────────┼──────────────┤
│ 1 │ hash base64 │ deprecated │ builtin │
│ 2 │ str collect │ deprecated │ builtin │
│ 3 │ str find-replace │ deprecated │ builtin │
│ 4 │ str to-datetime │ deprecated │ builtin │
│ 5 │ str to-decimal │ deprecated │ builtin │
│ 6 │ str to-int │ deprecated │ builtin │
╰───┴──────────────────┴────────────┴──────────────╯
リダイレクト
Ver 0.72からのリダイレクトですが、外部コマンドでのみ使えます。また書式がちょっとかわってます。まぁ1
とか2
よりはいいかも。
# 外部コマンドの標準出力をファイルへ
^hoge_cmd out> hoge_stdout.txt
# 外部コマンドの標準エラー出力をファイルへ
^hoge_cmd err> hoge_stdout.txt
# 外部コマンドの標準出力とエラー出力をファイルへ
^hoge_cmd out+err> hoge_stdout.txt
SQlite関連
以下の通り削除です。
Specifically, it removes the following 20 commands: and, as, collect, describe, field, fn, from table, group-by, into db, into nu, join, limit, open-db, or (for expressions), or (for queries), order-by, over, select, testing-db, where
理由は Proposal: Remove the sqlparser SQLite commands #7040 に記載されてます。
help commands
でのdatabase
カテゴリは、2つのみ(query
, schma
)しか残ってません。
他にもありますので、Breaking changesをみたほうがいいでしょう。
Nushellのいいところ:
- パイプに構造化データを流せること。
- pluginも作れる[1]
- SQLライクにデータの絞り込み・抽出ができること(コマンド毎にオプション覚える必要が少なくなる)
- Rustで書かれて高速・最新・優れたライブラリの恩恵を受けられる
- Apache Arrow[2]ベースのDataframe
- Starshipと連携した見栄えのするプロンプト
- Nushellの特徴が活かせるスクリプトが書ける
- ドキュメントが少ないが、理解できればカスタマイズ[3]しやすい
- Cross platform(Linux, macOS, BSD, and Windows)
- エラー情報が豊富
-
Python,Rustで作れるらしい.どっちも苦手、Deno使えんかな... ↩︎
-
列データを処理するデータ分析アプリケーションを開発するための言語に依存しないソフトウェアフレームワークで、効率的なデータ交換のために設計されたデータフォーマット。約30倍高速化した適用事例を記載したブログSpeeding up PySpark with Apache Arrow参照 ↩︎
-
Menu,keybindingなど ↩︎
Release 0.72.1 · nushell/nushellがでてました。基本的には大きな変更はなし。OpenSSLを静的リンクに、Ubuntu向けのhotfixリリース。
- 論理積(&&)/論理和(||)は、and/orに.
- 新しい
explore
コマンドの導入。 -
math
コマンドに新しい定数・関数の追加(ほぼ0.72で導入済みのものを含む) -
any
,all
,skip until
,skip while
,take until
,take while
で行の条件の代わりにクロージャを使えるようにした。 -
filter
,uniq-by
コマンドの導入 - mutで定義された構造化データが格納された変数の内部データへの代入ができるように。
下記のように簡潔に記述できるようになった。
$env.config.table.mode = compact_double
Nushell 0.74 | Nushellがリリースされました。
- create.ioから取得できるようになり、
cargo install nu
で導入できるようになった。 - カスタムコマンドのヘルプ自動生成に加えて、
alias
,modules
にも適用。 -
const
キーワードの追加,url encode
,values
コマンドの追加 - その他もろもろ
Nu Shellの新バージョンリリース情報
主要な変更:
Unicode
- Unicodeエスケープの変更
"\u0043" --> "\u{0043}
-
str length
コマンドに-g
オプションの適用[^将来デフォルトにするか議論中]
直感的な文字数と実数が合わない場合、とくにん
やemojiがある場合に有効.
$ 'ほげ ふが ぴよ' | str length -g
7
$ 'ほげ ふが ぴよ' | str length
20
新たなコマンド
- enumerate
入力データの列挙とindexの付与
ls | enumerate | get 14
- Web関連コマンド名の変更
Old name | New name beginning with 0.75 |
---|---|
fetch | http get |
post | http post |
to url | url build-query |
- main
mainコマンドでコマンドを定義すると、モジュール名をコマンド名として扱える。
その他
- saveコマンドに
--progress
オプションが追加されて、ターミナル上にプログレスバーを表示します。
新しいNushellですが、bug fix含むdebug
系コマンドの充実がメインですね。
Ver0.77出てますね。
- alias仕様変更
- 時間(timestamp)の扱いの変更
- 新規from/to xmlコマンド
- $nu変数にログイン情報のプロパティ追加
- httpサブコマンドの変更