awk: fatal: Unmatched ( or ( on gnuwin32 Gawk



Linux上使用Mawk或Gawk时,以下内容有效,但是在使用gnuwin32 Gawk时出现错误

C:UsersuserDownloadsbinawk.exe -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' kpi-test.csv
awk: fatal: Unmatched ( or (: /'' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(,, ",/

我知道我可以尝试cygwin,但我宁愿使用gnuwin32 Gawk。有人有什么建议吗?

看起来你现在正在尝试在Windows/DOS上执行它。该平台上的引用规则不同,通常的建议是将您的 awk 脚本放在文件中并使用awk -f script input而不是尝试处理 Windows 引用噩梦。我个人总是在Windows上使用Cygwin,并从中运行awk。

Windows 命令外壳中的任何"单行"都必须用双引号引起来。 如果单行包含双引号,则必须以反斜杠开头:

c:> gawk "BEGIN { print("This will work.") }"
This will work.
c:> 

最新更新