在 PowerShell 中执行 awk 命令
awk
是一种用于数据操作和报告生成的脚本语言。awk
是一种命令行编程语言,无需编译即可支持变量、文本函数、数值函数和逻辑运算符。
不幸的是,awk
没有完全集成到 PowerShell 中,因为它使用的是 Windows 操作系统。本文将讨论如何使用 PowerShell 使用与 awk
命令类似的命令和功能。
在 PowerShell 中执行 awk
命令
awk
实用程序允许程序员以指定文本模式的语句的形式创建简短但功能强大的程序,这对于不熟悉 Linux 命令或一般 Linux 的用户可能会感到陌生。在每一行中搜索这些文本模式,并在找到匹配项时采取措施。
awk
主要用于模式扫描和处理。它探索一个或多个文件以查看它们是否包含与指定模式匹配的行,然后执行相关操作。
以下代码片段是使用 awk
的命令示例。
awk '/"Box11"/ { print $0 }' test.txt|awk '{ SUM += $4} END { print SUM} '
要执行类似 awk
命令的操作,我们将使用 Get-Content
命令获取文件的内容并在 Windows PowerShell 中执行几个字符串操作。如果我们采用上面的示例,这就是它在 PowerShell 中的样子。
示例代码:
Get-Content c:\temp\test.txt |
Where-Object{$_ -match '"Box11"'} |
ForEach-Object{($_ -split "\s+")[3]} |
Measure-Object -Sum |
Select-Object -ExpandProperty Sum
Get-Content
命令将获取文本文件的内容。Where-Object
命令将过滤带有Box11
字符串的行。- 然后,一旦过滤掉,脚本将循环以将每个行字符串拆分到其第 4 个元素中。请记住,PowerShell 从索引
0
开始;因此,我们使用索引3
而不是4
,这与我们的awk
命令不同。 Measure-Object
将对属性执行计算,在这种情况下为Sum
。- 最后,
Select-Object
将输出Sum
扩展属性。
如果我们注意到,我们的 PowerShell 版本的 awk
命令会稍长一些。好在在 PowerShell 中,我们可以通过使用别名和几个 PowerShell 运算符来创建快捷方式。
示例代码:
gc c:\temp\test.txt | ?{$_ -match '"Box11"'} | %{(-split $_)[3]} |
Measure -Sum | Select -Exp Sum
或者,如果你启用了 WSL(适用于 Linux 的 Windows 子系统),我们可以按原样运行 awk
命令。Windows 操作系统的一项称为 Linux 的 Windows 子系统 (WSL) 的功能使你能够直接在 Windows 上运行 Linux 文件系统,以及 Linux 命令行工具和 GUI 应用程序。
所以我们必须调用 wsl
命令并本地执行 awk
命令。
示例代码:
wsl -e awk '/"Box11"/{sum += $4} END{print sum}' test.txt
相关文章
在 Windows PowerShell 中获取命令行参数
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。
Windows PowerShell 中的 Base64 编码
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
在 Windows PowerShell 中写入输出
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
在 Windows PowerShell 中设置 PATH 环境变量
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 Windows PowerShell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
在 Windows PowerShell 中打印环境变量
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 Windows PowerShell 命令打印它们。
在 PowerShell 中注释代码
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
在 PowerShell 中执行 LDAP 查询
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 Active Directory 过滤器和 LDAP 过滤器。