在awk中定义一个字符串

时间:2012-08-02 12:10:30

标签: awk

我有awk的问题,我想根据整数值NF定义一个字符串变量(str),以便在另一个函数中使用它: 如果NF = 3 str =" $ 1 $ 2 $ 3"。

如果NF = 4 str =" $ 1 $ 2 $ 3 $ 4" ....等 怎么做

3 个答案:

答案 0 :(得分:0)

只需使用str = $ 0

如果(NF == 3)则str =“$ 1 $ 2 $ 3”

如果该行有3个字段,那么显然$ 0是所有3个字段的组合。 如果您希望输出字段分隔符为“”,则只需提及OFS =“”。

示例:

awk -F";" 'BEGIN{OFS=" "}{str=$0;print str}' file

答案 1 :(得分:0)

如果你只是想看看如何定义和使用变量,试试这个:

#!/bin/awk -f
{
        print NF
        if (NF==3){
                str=$1 $2 $3 " says hello 3"
        }
        if (NF==2){
                str=$1 $2 
        }
        print str
}

答案 2 :(得分:0)

如果我理解你,你想要这个吗?

kent$echo "a b c d"|awk '{for(i=1;i<=NF;i++) s=s"$"i" ";print s}' 
$1 $2 $3 $4