如何获取输入 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 回答