如何获取输入 CSV 文件中每一行的第一列并输出到新文件?我正在考虑使用awk但不确定如何使用。
77231 次
6 回答
82
试试这个:
awk -F"," '{print $1}' data.txt
它将data.txt根据,字符(用 指定)将文件中的每个输入行拆分为不同的字段,-F并将第一个字段(列)打印到标准输出。
于 2012-07-26T11:49:42.690 回答
67
可以做到:
$ cut -d, -f1 data.txt
于 2012-07-26T11:50:22.513 回答
12
echo "a,b,c" | cut -d',' -f1 > newFile
于 2012-07-26T11:50:51.690 回答
7
输入
a,12,34
b,23,56
代码
awk -F "," '{print $1}' Input
格式
awk -F <delimiter> '{print $<column_number>}' Input
于 2012-07-26T12:01:14.977 回答
3
这可以通过以下方式实现grep:
$ grep -o '^[^,]\+' file.csv
于 2015-11-12T13:37:44.170 回答
0
使用 Perl:
perl -F, -lane 'print $F[0]' data.txt > data2.txt
使用这些命令行选项:
-n循环输入文件的每一行-l在处理之前删除换行符,然后将它们添加回来-a自动拆分模式——将输入行拆分到@F数组中。默认为空格分割。-e执行 perl 代码-F自动拆分修饰符,在这种情况下拆分,
如果要就地修改原始文件,请使用以下-i选项:
perl -i -lane 'print $F[0]' data.txt
如果您想就地修改原始文件并制作备份副本:
perl -i.bak -lane 'print $F[0]' data.txt
如果您的数据是空格分隔而不是逗号分隔:
perl -lane 'print $F[0]' data.txt
于 2015-11-12T18:50:39.547 回答