How to get the first column of every line from a CSV file?

泪湿孤枕 提交于 2019-11-28 21:07:41

Try this:

 awk -F"," '{print $1}' data.txt

It will split each input line in the file data.txt into different fields based on , character (as specified with the -F) and print the first field (column) to stdout.

Can be done:

$ cut -d, -f1 data.txt
echo "a,b,c" | cut -d',' -f1 > newFile

Input

a,12,34
b,23,56

Code

awk -F "," '{print $1}' Input

Format

awk -F <delimiter> '{print $<column_number>}' Input

This can be achieved using grep:

$ grep -o '^[^,]\+' file.csv

Using Perl:

perl -F, -lane 'print $F[0]' data.txt > data2.txt

These command-line options are used:

  • -n loop around every line of the input file
  • -l removes newlines before processing, and adds them back in afterwards
  • -a autosplit mode – split input lines into the @F array. Defaults to splitting on whitespace.
  • -e execute the perl code
  • -F autosplit modifier, in this case splits on ,

If you want to modify your original file in-place, use the -i option:

perl -i -lane 'print $F[0]' data.txt


If you want to modify your original file in-place and make a backup copy:

perl -i.bak -lane 'print $F[0]' data.txt


If your data is whitespace separated rather than comma-separated:

perl -lane 'print $F[0]' data.txt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!