【问题标题】:using gawk in a shell script在 shell 脚本中使用 gawk
【发布时间】:2009-09-07 22:19:12
【问题描述】:

您好,我想在 for 循环中使用 gawk。像这样:

for i in gawk {print $1} | tr '\n' ' '
do something using $i

这当然行不通。想法?

【问题讨论】:

    标签: bash shell gawk


    【解决方案1】:

    您缺少反引号或 $(...) 来评估 awk 命令。

    for i in $(ls -l | gawk '{print $1}' | tr '\n' ' ')
    do
           echo $i
    done
    

    虽然不需要最后一个 tr 命令,因为 $(...) 隐式命令的输出将在此上下文中将换行符转换为空格。

    【讨论】:

      【解决方案2】:

      在上面提供的答案中,gawk 是子例程,bash 是驱动程序。

      另一种方法是使用其内置的 system 命令制作 gawk 驱动程序。

      例如:

      ls | gawk '/^a/ { system("ls -lsa " $1)}'
      

      如果(例如)您发现 Bash 的字符串处理工具有点过于神秘,这会更方便。

      【讨论】:

        【解决方案3】:

        带有 awk / gawk 示例的 shell 代码

        for i in `echo how now | gawk '/how/ { print $2 }'`; do
            echo ...$i
        done
        

        $ sh test.sh
        ...now
        $ 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-16
          • 2023-03-16
          • 2023-03-07
          • 1970-01-01
          • 1970-01-01
          • 2015-07-22
          相关资源
          最近更新 更多