【问题标题】:how to print columns of database using forloops in awk如何在awk中使用for循环打印数据库列
【发布时间】:2011-10-06 06:16:17
【问题描述】:

大家好,我刚开始学习 awk,我遇到了一个问题 这是我的数据

    james         31 
    mary          22 
    john          28

我想打印一些类似“玛丽年龄是 22 岁”的内容,使用 for 循环我已经编写了这段代码

{
  for (i=1 ;i<=FNR ;i++)
    { 
     FNR == i {print $1 " age is " $2}  
    }
}

但它在括号上给了我错误

awk:awk_script.awk:第 5 行:{ 处或附近的语法错误 awk:awk_script.awk:第 7 行:}

处或附近的语法错误

请告诉我哪里错了

【问题讨论】:

    标签: for-loop awk


    【解决方案1】:

    您需要删除 for 循环。 awk 会自动执行此操作。

    给定名为名称的文件:

    james,31 
    mary,22 
    john,28
    

    您只需要在命令行上执行此操作:

    awk -F ',' 'FNR == 2 {print $1 " age is " $2}' names
    

    这会给

    mary age is 22 
    

    【讨论】:

      【解决方案2】:

      您不必为此执行复杂的逻辑。看这个例子:

      kent$  echo "  james         31 
      dquote>     mary          22 
      dquote>     john          28
      dquote> "|awk 'BEGIN{OFS=" age is "}$1=$1'
      
      james age is 31
      mary age is 22
      john age is 28
      

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 2020-04-21
        • 1970-01-01
        • 2015-04-03
        • 2020-05-01
        • 1970-01-01
        • 2016-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多