我有awk的问题,我想根据整数值NF定义一个字符串变量(str),以便在另一个函数中使用它: 如果NF = 3 str =" $ 1 $ 2 $ 3"。
如果NF = 4 str =" $ 1 $ 2 $ 3 $ 4" ....等 怎么做
答案 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