mawk 脚本在 linux 下有效,但在 windows 下无效

mawk script works under linux, but not windows

我正在尝试从 CSV 文件中提取一些数据,但在 linux 下工作的命令行不适用于 windows 的 mawk。

使用 WSL,以下命令按预期工作:

    mawk -F, ' == "Good" {print }' < *GOL*_approval.txt

然而,在 powershell 中,以下命令给出完全不同的结果:

    mawk -F',' ' == "Good" {print }' *GOL*_approval.txt

我认为这可能是一个引用选项,但我已经尝试了所有我能想到的方法。

你的 mawk 是什么版本? http://gnuwin32.sourceforge.net/packages/mawk.htm ?

此外,您在 < *GOL*_approval.txt 之前的第二个项目上缺少 <,并在 -F','

中添加了额外的 '
  • PowerShell on Windows 不支持 PowerShell 中所谓的 native globbing(Core ) 在类 Unix 平台上,因此您必须显式解析通配符(通配符)模式。

  • 至少在 PowerShell 7.1 之前,将参数传递给嵌入了 " 字符的外部程序时存在一个长期存在的错误,要求它们 手动转义为 \"

    • 这可能最终会在即将推出的 v7.2 中得到修复 - 请参阅 this answer
# Manual escaping of " as \" is required up to v7.1
# This may change in v7.2
mawk -F',' ' == \"Good\" {print }' (Get-Item *GOL*_approval.txt).FullName