user194860 Asked: 2022-05-24 09:47:36 +0800 CST2022-05-24 09:47:36 +0800 CST 2022-05-24 09:47:36 +0800 CST nushell:将计算列添加到表中 772 如何在 nushell 的表中添加一列,该列从其他列计算其值? 例如,我想ls -a -f **/*通过添加这两列并删除原始的“名称”列,将“名称”列拆分为“没有名称的路径”和“本地名称”。 官方文档有一节添加新列。但它解释了如何添加行,而不是列。该混淆甚至还有一个GitHub 问题,但它仍然是开放的。 nushell 1 个回答 Voted Best Answer NotTheDr01ds 2022-05-24T10:57:29+08:002022-05-24T10:57:29+08:00 insert尽管书中的示例令人困惑,但我相信这确实是您正在寻找的东西。 尝试: ls -af **/* | insert path { $in.name | path dirname } | update name { $in.name | path basename } 这会插入一个新path列并更新(而不是删除)现有name列以仅显示名称。 您可以将其清理一下,并通过将其放入函数中使其更易于调用: def split-ls [] { insert path { $in.name | path dirname } | update name { $in.name | path basename } } 然后调用: ls -af **/* | split-ls 如果您真的想要两个新列并删除现有名称: ls -af **/* | insert path { $in.name | path dirname } | insert base { $in.name | path basename } | move path --before name | move base --before path | reject name 或者,如上所述: def split-ls [ --help (-h) ] { insert path { $in.name | path dirname } | insert base { $in.name | path basename } | move path --before name | move base --before path | reject name } ls -af **/* | split-ls
insert
尽管书中的示例令人困惑,但我相信这确实是您正在寻找的东西。尝试:
这会插入一个新
path
列并更新(而不是删除)现有name
列以仅显示名称。您可以将其清理一下,并通过将其放入函数中使其更易于调用:
然后调用:
如果您真的想要两个新列并删除现有名称:
或者,如上所述: