bash - AWK打印bash变量不止一次

bash - AWK打印bash变量不止一次,第1张

我正在尝试使用一个使用bash变量的AWK one liner。问题是它被打印多次或发出错误。 bash变量看起来像这样(没有echo线):

echo "$time"
49.80
63.4
61
60.4
61

我试图使用的AWK专线是:

awk -v time="$time" -F, '{print ,,,,=time}' file

输出是这样的:

SantaClara 6/7/2015 D 4 49.80
63.4
61
60.4
61
SantaClara 5/29/2015 D 5 49.80
63.4
61
60.4
61
SantaClara 5/21/2015 D 5 49.80
63.4
61
60.4
61
SantaClara 4/29/2015 D 5 49.80
63.4
61
60.4
61
SantaClara 4/22/2015 D 5 49.80
63.4
61
60.4
61

我正在寻找这个:

SantaClara 6/7/2015 D 4 49.80
SantaClara 5/29/2015 D 5 63.40
SantaClara 5/21/2015 D 5 61
SantaClara 4/29/2015 D 5 60.4
SantaClara 4/22/2015 D 5 61

我在AWK系列上有几种变体,只是出现了错误。我做错了什么?

最佳答案:

2 个答案:

答案 0 :(得分:4)

改为使用paste

$ paste file <(echo "$time")

如果您需要特定的分隔符(选项卡是默认设置),请使用-d开关。

答案 1 :(得分:1)

如果您只想要一个awk解决方案:

awk -F= 'FNR==NR{a[  i]=;next} {print , a[FNR]}' <(echo "$time") file
SantaClara 6/7/2015 D 4 49.80
SantaClara 5/29/2015 D 5 63.4
SantaClara 5/21/2015 D 5 61
SantaClara 4/29/2015 D 5 60.4
SantaClara 4/22/2015 D 5 61
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复