-1

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

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

4

3 回答 3

0

只需使用 str=$0

if(NF==3) 那么 str="$1 $2 $3"

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

例子:

awk -F";" 'BEGIN{OFS=" "}{str=$0;print str}' file
于 2012-08-02T12:20:50.677 回答
0

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

#!/bin/awk -f
{
        print NF
        if (NF==3){
                str=$1 $2 $3 " says hello 3"
        }
        if (NF==2){
                str=$1 $2 
        }
        print str
}
于 2012-08-02T12:25:43.717 回答
0

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

kent$echo "a b c d"|awk '{for(i=1;i<=NF;i++) s=s"$"i" ";print s}' 
$1 $2 $3 $4 
于 2012-08-02T12:59:00.643 回答