处理选项卡分隔文件并将每列保存为变量

时间:2013-05-14 23:25:54

标签: shell unix

我有一个制表符分隔feadList,其中有两列(date + id):

20130509    1319
20130510    1320
20130511    1321
20130512    1322
20130513    1323

在阅读每一行时,我想使用id从Web链接卷曲数据,然后保存到文件名为date的文件中。现在我有类似的东西:

for feed in $feadList
do
    awk -F "\t" '{print date=$1, seq=$2}' $feed
    curl "$WebLink/$seq/data" > $date
done

但显然它不起作用。伙计们对此有所了解?谢谢!

2 个答案:

答案 0 :(得分:5)

另一种方法是

while read date seq
do
    curl "$WebLink/$seq/data" > $date
done < feadList

答案 1 :(得分:2)

while read date seq
do
    curl "$WebLink/$seq/data" > $date
done < feadList

read命令(内置shell)将数据行拆分为分配给$date$seq的两个字段,然后您可以在循环体中使用它们。如果一行上有额外的字段,它们也会被记录在$seq中。

您的shell符号根本无法正常工作。循环将使用变量$feadList中的值(与feadList不同作为文件名)执行一次。 awk命令将为每个输入行输出一行标准输出,包含拆分数据。但这将是简单的输出......没有对shell变量$date$seq的赋值,并且curl命令将无法按预期工作。