Is bash capable of handling extracting rows and columns from csv files? Hoping I don't have to resort to python..
My 5-column csv file looks like:
Rank,Name,School,Major,Year
1,John,Harvard,Computer Science,3
2,Bill,Yale,Political Science,4
3,Mark,Stanford,Biology,1
4,Jane,Princeton,Electrical Engineering,3
5,Alex,MIT,Management Economics,2
I only want to extract the 3rd, 4th, and 5th column contents, ignoring the first row, so output looks like:
Harvard,Computer Science,3
Yale,Political Science,4
Stanford,Biology,1
Princeton,Electrical Engineering,3
MIT,Management Economics,2
So far I can only get awk to print out either each row, or each column of my CSV file, but not specific cols/rows like this case! Can bash do this?
You can use AWK to quickly look at a column of data in a CSV file.
awk -F, 'NR > 1 { print $3 "," $4 "," $5 }'
NR is the current line number, while $3, $4 and $5 are the fields separated by the string given to -F
Try this:
tail -n+2 file.csv | cut --delimiter=, -f3-5
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With