gpt4 book ai didi

linux - 如何在具有 AWK 语句的 bash 脚本中使用 --enable-switch

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:14 24 4
gpt4 key购买 nike

刚刚发现我在“awk”中使用 switch-case 的问题与这个知识库中的问题完全相同:

switch/case doesn't work in awk

现在我在 bash 脚本中使用我的 awk 语句,而不是将它作为单独的 AWK 脚本文件运行。考虑到如何在我的 bash 脚本中使用 --enable-switch 。这是我的脚本的结构:

#! bin/ksh
. ~/.profile
// bash if-else statements to perform some tasks
/usr/bin/awk '
BEGIN {
// array[] defined
}

// some statements
function printmsg(msg) {
switch(1) {
case /pattern1/:
print msg
break
case /pattern2/:
print msg
break
}
}' file

我在哪里可以强制执行 --enable-switch

我的 GAWK 版本是 gawk-3.1.5-16.el5

最佳答案

您使用的是极旧版本的 gawk,从 4.0 开始默认启用 switch 语句,而我们现在使用的是 4.1.something。你错过了很多非常有用的功能(比 switch 语句有用得多,请参阅 http://www.gnu.org/software/gawk/manual/gawk.html#Feature-History )所以得到一个新的 gawk。

话虽如此,您可以在安装新的 gawk 后继续使用 switch(),但恕我直言,这不值得让您的脚本成为特定于 gawk 的,如果这是您唯一特定于 gawk 的功能,只需将其重写为 if-elses正在使用。

关于linux - 如何在具有 AWK 语句的 bash 脚本中使用 --enable-switch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36836264/

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