我对 awk 有疑问,我想根据整数值 NF 定义一个字符串变量 (str),以便在另一个函数中使用它:如果 NF=3 str="$1 $2 $3"。
if NF=4 str="$1 $2 $3 $4"....等等怎么做
我对 awk 有疑问,我想根据整数值 NF 定义一个字符串变量 (str),以便在另一个函数中使用它:如果 NF=3 str="$1 $2 $3"。
if NF=4 str="$1 $2 $3 $4"....等等怎么做
只需使用 str=$0
if(NF==3) 那么 str="$1 $2 $3"
如果该行有 3 个字段,那么显然 $0 是所有 3 个字段的组合。如果您希望输出字段分隔符为“”,则只需提及 OFS=""。
例子:
awk -F";" 'BEGIN{OFS=" "}{str=$0;print str}' file
如果你只是想看看如何定义和使用变量,试试这个:
#!/bin/awk -f
{
print NF
if (NF==3){
str=$1 $2 $3 " says hello 3"
}
if (NF==2){
str=$1 $2
}
print str
}
如果我理解你的话,你想要这个吗?
kent$echo "a b c d"|awk '{for(i=1;i<=NF;i++) s=s"$"i" ";print s}'
$1 $2 $3 $4