Benjohn Asked: 2023-10-04 18:37:46 +0800 CST2023-10-04 18:37:46 +0800 CST 2023-10-04 18:37:46 +0800 CST 在 nushell 中以表格形式查找源文件的行数 772 我很早就开始尝试学习 nushell,抱歉!…我想构建一个表,其中包含文件夹中所有递归找到的“.swift”源文件,然后附加一个包含其(计算的)行数的附加列。 我使用过这个答案,它有一种方法来查找所有带有ls **/*.swift. 我使用了这个答案,它有一种将计算列添加到表中的方法insert。 这促使我尝试: ls **/*.swift | insert lineCount { wc -l $in.name } 然而,这似乎不起作用。它打印了很多东西,但似乎是大块的表输出散布在大块的wc输出中。 谢谢。 nushell 2 个回答 Voted Best Answer Charles Roper 2023-10-26T10:04:21+08:002023-10-26T10:04:21+08:00 您可以使用本机 Nushell 命令来执行此操作 - 无需wc在其他平台(如 Windows)上可能不可用: ls **/*.py | select name | insert linecount { open $in.name | lines | length } (我正在这里处理.py文件) 这是一个屏幕截图: Jake McNicholl 2023-10-04T21:49:11+08:002023-10-04T21:49:11+08:00 使固定: 在 NuShell 中,您需要使用 select 命令创建包含计算列的新表。以下是您如何实现您想要的目标: ls **/*.swift | select name, { wc -l $it | get lines } | rename name file 解释: ls **/*.swift:这会递归列出所有 .swift 文件。 select name, { wc -l $it | get lines }:这将创建一个包含两列的新表:名称(文件名)和计算列行,其中包含每个文件的行数。 rename name file:为了清楚起见,这会将名称列重命名为文件。 这将为您提供一个包含两列的表:文件和行,其中文件包含文件名,行包含每个相应文件的行数。
您可以使用本机 Nushell 命令来执行此操作 - 无需
wc
在其他平台(如 Windows)上可能不可用:(我正在这里处理
.py
文件)这是一个屏幕截图:
使固定:
在 NuShell 中,您需要使用 select 命令创建包含计算列的新表。以下是您如何实现您想要的目标:
解释:
ls **/*.swift
:这会递归列出所有 .swift 文件。select name, { wc -l $it | get lines }
:这将创建一个包含两列的新表:名称(文件名)和计算列行,其中包含每个文件的行数。rename name file
:为了清楚起见,这会将名称列重命名为文件。这将为您提供一个包含两列的表:文件和行,其中文件包含文件名,行包含每个相应文件的行数。