读取csv文件

时间:2012-05-16 09:15:15

标签: shell unix programming-pearls

我有逗号分隔的平面文件,其内容如下。

Name,Empno,Address,Contact,Company
A,1,”BTM, Bangalore”,1234,”HCL”
B,2,”Tatanagar”,1243,”WIPRO”
C,3,”Patna”,1254,”CTS”
D,4,”Doranda,Ranchi”,1253,”TCS”

我需要为每个人提供名称和联系方式。 如果我使用分隔符作为“,”A和D的联系人将是Bangalore和Ranchi,这是不正确的。 如何获得第1和第4个字段。还请告知我是否可以使用awk命令获取所需的详细信息

修改 只是添加这个是示例数据,我的原始数据将有更多的字段,也可以在引号内的任何字段中使用逗号。

2 个答案:

答案 0 :(得分:1)

我认为联系始终是最后一个字段。你可以试试这个

awk -F, '{if(NR>1)printf("%s,%s\n",$1,$(NF-1));}' ip.txt

答案 1 :(得分:1)

$ awk -F, '{print $1, $(NF-1)}' csv.txt 
Name Contact
A 1234
B 1243
C 1254
D 1253