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
我正在尝试从 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