gpt4 book ai didi

linux - AWK 命令在 linux 中不起作用,但在 mac 中起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:15 57 4
gpt4 key购买 nike

有人可以告诉我我在这里做错了什么吗?它似乎适用于我的 mac shell,但似乎不适用于 linux box。看起来像是 awk 的不同版本?我想确保我的代码可以在 Linux 版本上运行。

echo -e "${group_values_with_counts}" | awk '$1>='${value2}' { print "{\"count\":\""$1"\",\"type\":\""$2"\"}" }'


21:19:41 awk: $1>= { print "{\"count\":\""$1"\",\"type\":\""$2"\"}" }
21:19:41 awk: ^ syntax error

最佳答案

您试图以错误的方式将 shell 变量的值传递到 awk 中并使用不可移植的 echo。正确的方法(假设 value2 不包含任何反斜杠)是:

printf '%s\n' "$group_values_with_counts" |
awk -v value2="$value2" '$1>=value2{ print "{\"count\":\""$1"\",\"type\":\""$2"\"}" }'

如果 value2 可以包含反斜杠,并且您希望按字面意思处理它们(例如,您不希望将 \t 转换为制表符),那么您需要使用 ENVIRON 或 ARGV 传递它。请参阅http://cfajohnson.com/shell/cus-faq-2.html#Q24 .

关于linux - AWK 命令在 linux 中不起作用,但在 mac 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53712204/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com