2013-04-23 59 views
1

使用以下脚本访问CSV项目。使用awk逐个处理CSV项目

#!/bin/bash 
awk -F "|" 'NR > 0 {print $1}' UserAgents.csv 

运行脚本时,我得到正确的输出,即CSV第一个'列'中的整个值集被打印到终端。我想添加的是逐个读取这些项目,并对它们执行一些操作,例如将它们与一个字符串连接起来,然后逐个输出它们(文件,管道或终端)。

+2

你'{打印$ 1}得到每个项目执行''一个由one'。那么为什么不在那里做这个动作呢,试着'打印'你好那里“$ 1'不是作为回答,因为我觉得在问题 – abasu 2013-04-23 15:49:04

+1

'NR> 0'中可能还有别的东西 - 如果那是忽略空白行,它应该是'NF> 0' – suspectus 2013-04-23 15:58:19

回答

2

这应该说清楚你的awk脚本是这样做的:

awk -F '|' '{ 
    print NR, NF, $1, "with some trailing text" 
}' UserAgents.csv 
+0

感谢它帮助我理解awk处理CSV文件中的条目的方式。尽管我最终使用了IFS作为我的脚本的最终版本。 – 2013-04-23 19:28:02

+0

“我最终使用IFS作为我的脚本的最终版本”是什么意思? awk中没有IFS bultin变量,但有shell。 – 2013-04-23 19:29:41

+0

对不起,我的意思是我最终没有使用awk。 – 2013-04-25 10:08:52