在 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
相关文章
在 PowerShell 中提取子字符串
发布时间:2024/02/07 浏览次数:162 分类:编程语言
-
本文将讨论如何使用 PowerShell 的字符串库有效地提取字符串中的子字符串。作为 Windows 管理员的一个典型场景是找出一种方法来在称为子字符串的字符串中查找特定的文本片段
在 PowerShell 中连接字符串
发布时间:2024/02/07 浏览次数:174 分类:编程语言
-
本文将展示我们可以在 PowerShell 中使用的所有可能的方法来连接字符串和变量。PowerShell 使用不同的运算符和函数来实现字符串连接。
在 PowerShell 中将字符串转换为整数
发布时间:2024/02/07 浏览次数:131 分类:编程语言
-
本教程将教你在 PowerShell 中将字符串转换为整数。在 PowerShell 中使用 [int] 将字符串转换为整数
在 PowerShell 中将字符串拆分为单独的变量
发布时间:2024/02/07 浏览次数:140 分类:编程语言
-
本教程将介绍在 PowerShell 中将字符串拆分为单独的变量。字符串是用于表示文本的字符序列。它是 PowerShell 中常见的数据类型之一。
在 PowerShell 中获取变量的字符串长度
发布时间:2024/02/07 浏览次数:113 分类:编程语言
-
本教程将教你在 PowerShell 中获取变量的字符串长度。字符串是 PowerShell 中最常用的数据类型之一;它包含字符或文本的序列。你可以使用单引号或双引号定义字符串。
在 PowerShell 中查找子字符串的位置
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你在 PowerShell 中查找子字符串的位置。PowerShell 中的字符串和子字符串 字符串是 PowerShell 中使用的常见数据类型。
在 PowerShell 中比较两个字符串对象的内容
发布时间:2024/02/07 浏览次数:65 分类:编程语言
-
本教程将教你比较 PowerShell 中两个字符串对象的内容。字符串是 PowerShell 中最常用的数据类型之一。
使用 PowerShell 替换文件中的文本
发布时间:2024/02/07 浏览次数:118 分类:编程语言
-
本教程将教你使用 PowerShell 替换文件中每个出现的字符串。PowerShell 是一个强大的工具,可以执行不同的文件和文件夹操作。
PowerShell 中加入路径以将两个以上的字符串组合成一个文件路径
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你使用 Join-Path 将两个以上的字符串组合成一个文件路径。