I'm attempting to sort a csv on my machine, but I seem to be erasing
the contents each time I use
the sort command. I've basically created a copy of my csv lacking
the first row:
sed '1d' original.csv > newcopy.csv
To confirm that my new copy exists lacking
the first row I can check with head:
head 1 newcopy.csv
Sure enough, it finds my file and shows me
the original second now (now first row). My csv consists of numerous values seperated by commas:
Jonathan Sampson,,,,
[email protected],,,GA,United States,,
Jane Doe,Mrs,,,
[email protected],,,FL,United States,32501,
As indicated above, some fields are empty. I want to sort based upon
the email address
field, which is either 4, or 5 - depending on whether
the sort command uses a zero-based index. So I'm trying
the following:
sort -t, +4 -5 newcopy.csv > newcopy.csv
So I'm using -t, to indicate that my fields are terminated by
the comma, rather than a space. I'm not sure if +4 -5 actually sorts on
the email
field or not - I could use some help here. And then newcopy.csv > newcopy.csv to overwrite
the original file with new sort results.
After I do this, if I try to read in
the first line:
head 1 newcopy.csv
I get
the following error:
head: cannot open `1' for reading: No such file or directory == newcopy.csv <==
Sure enough, if I check my directory
the file is now empty, and 0 bytes.