Nushell
安装 Nu !
快速开始
  • Nushell 之书
  • 命令参考列表
  • 实战指南
  • 语言参考指南
  • 贡献指南
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
安装 Nu !
快速开始
  • Nushell 之书
  • 命令参考列表
  • 实战指南
  • 语言参考指南
  • 贡献指南
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
  • 实战指南

    • 实战指南
    • 设置
    • 帮助
    • 系统
    • 解析
    • 外部 Shell 脚本
    • 模式匹配
    • 自定义补全器
    • 外部命令补全器
    • 模块的应用
    • 处理文件
    • Git
    • 解析 Git 日志
    • 使用 input listen 对按键进行操作
    • HTTP
    • Direnv
    • ssh-agent
    • 高级表格工作流
    • Polars vs Pandas vs Nushell
    • jq vs Nushell

处理文件

编辑文件并保存更改

这里我们正在编辑 Cargo.toml。我们使用 inc 增加 crate 的补丁版本,然后将其保存回文件。 使用 help inc 获取更多信息。

读取文件的初始内容

open Cargo.toml | get package.version

输出

0.59.0

对版本号进行编辑并保存。

注意:运行此命令应该可以工作,但它会按部分按字母顺序重新排序 toml 文件。

open Cargo.toml | upsert package.version { |p| $p | get package.version | inc --patch } | save -f Cargo.toml

注意:inc 可通过插件 nu_plugin_inc 使用。

输出 无

查看我们对文件所做的更改。

open Cargo.toml | get package.version

输出

0.59.1


解析非标准格式的文件

假设你有一个以下格式的文件。

band:album:year
Fugazi:Steady Diet of Nothing:1991
Fugazi:The Argument:2001
Fugazi:7 Songs:1988
Fugazi:Repeater:1990
Fugazi:In On The Kill Taker:1993

你可以将其解析为表格。

open bands.txt | lines | split column ":" Band Album Year | skip 1 | sort-by Year
# => ━━━┯━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━
# =>  # │ Band   │ Album                  │ Year
# => ───┼────────┼────────────────────────┼──────
# =>  0 │ Fugazi │ 7 Songs                │ 1988
# =>  1 │ Fugazi │ Repeater               │ 1990
# =>  2 │ Fugazi │ Steady Diet of Nothing │ 1991
# =>  3 │ Fugazi │ In On The Kill Taker   │ 1993
# =>  4 │ Fugazi │ The Argument           │ 2001
# => ━━━┷━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━

你也可以使用 parse 来实现这一点。

open bands.txt | lines | parse "{Band}:{Album}:{Year}" | skip 1 | sort-by Year

或者,你可以使用 headers 命令将第一行用作标题行。唯一的区别是标题将与文本文件的大小写匹配。因此,在这种情况下,标题将为小写。

open bands.txt | lines | split column ":" | headers | sort-by year

使用 Ripgrep 进行单词出现次数统计

假设你想要检查字符串 "Value" 在 nushell 项目中每个文件出现的行数,然后按行数最多的文件排序。

rg -c Value | lines | split column ":" file line_count | into int line_count | sort-by line_count | reverse
# => ───┬──────────────────────────────────────┬────────────
# =>  # │ file                                 │ line_count
# => ───┼──────────────────────────────────────┼────────────
# =>  0 │ crates/nu-source/src/meta.rs         │         27
# =>  1 │ crates/nu-protocol/src/value/dict.rs │         10
# =>  2 │ src/commands/config.rs               │         10
# =>  3 │ crates/nu_plugin_sys/src/sys.rs      │         10
# =>  4 │ src/commands/from_bson.rs            │          9
# =>  5 │ src/utils/data_processing.rs         │          9
# =>  6 │ src/deserializer.rs                  │          8
# =>  7 │ src/commands/histogram.rs            │          7
# =>  8 │ src/commands/split_column.rs         │          6
# =>  9 │ src/data/dict.rs                     │          6
# => ───┴──────────────────────────────────────┴────────────
# => ... 示例输出因输出过大而受限
在GitHub上编辑此页面
Contributors: Ibraheem Ahmed, fdncred, Zhora Trush, Justin Ma, arnau, Quentin McGaw, Jan Klass, voyage200🍬
Prev
模块的应用
Next
Git