【问题标题】:Awk variable print wrong shell scriptawk 变量打印错误的 shell 脚本
【发布时间】:2019-01-24 02:26:44
【问题描述】:

虽然 i 设置为 1,但为什么要打印整个文件而不是特定条件?

请展示我的例子

oracle@localhost% i=1
oracle@localhost% cat listener.tmp | awk   '{print $1 } '
LISTENER_BIL
oracle@localhost% cat listener.tmp | awk   '{print $2 } '
LISTENER_AP
oracle@localhost% cat listener.tmp | awk   '{print $i } '
LISTENER_BIL LISTENER_AP
oracle@localhost% echo $i
1

谢谢 乌扎尔

【问题讨论】:

  • 这不是 BASH 变量在 awk 中的工作方式,您应该尝试一次 i=1;awk -v val="$i" '{print $val }' listener.tmp。此外,您不需要将cat 与可以读取文件本身的awk 程序一起使用,所以我也将其删除了。
  • @UzzalBasak :在您的代码中,您设置了变量i,但您没有在任何地方使用它。另外,您在谈论一些“特定条件”,但我在您的代码中看不到任何条件。

标签: shell awk printing


【解决方案1】:

感谢它正在成功运行

for (( i = 1; i < $COUNT_LISTENER+1 ; i++));

做 LISTENER_XXXX=${CAT} ${TEMPFILE} | ${AWK} -v val="$i" '{print $val}' ${ECHO} $LISTENER_XXXX >> ${LOGDIR}/listener_EXEC.log 完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多