【发布时间】:2011-02-08 19:08:47
【问题描述】:
操作系统:OSX 方法:从命令行,所以使用sed、cut、gawk,虽然最好不要安装模块。
基本上,我正在尝试获取 csv 文件的第一列并将其解析为新文件。
示例输入文件
EXAMPLEfoo,60,6
EXAMPLEbar,30,6
EXAMPLE1,60,3
EXAMPLE2,120,6
EXAMPLE3,60,6
EXAMPLE4,30,6
希望输出
EXAMPLEfoo
EXAMPLEbar
EXAMPLE1
EXAMPLE2
EXAMPLE3
EXAMPLE4
所以我想要第一列。
这是我迄今为止尝试过的:
awk -F"," '{print $1}' in.csv > out.txt
awk -F"," '{for (i=2;i<=NF;i++)}' in.csv > out.txt
awk -F"," 'BEGIN { OFS="," }' '{print $1}' in.csv > out.txt
cat in.csv | cut -d \, -f 1 > out.txt
似乎都不起作用,要么他们只打印第一行,要么什么都不打印,所以我认为它无法逐行读取。
【问题讨论】:
-
正如我在回答您之前的(并且非常相似的)问题时指出的那样,我的 FOSS 项目 code.google.com/p/csvfix 正是这样做的,比 awk 等更容易用于解析 CSV,并且可以工作在 OSX 上。