Estou tentando sort
a csv na minha máquina, mas parece que estou apagando o conteúdo toda vez que uso o comando sort
. Eu basicamente criei uma cópia do meu csv sem a primeira linha:
sed '1d' original.csv > newcopy.csv
Para confirmar que minha nova cópia existe sem a primeira linha, posso verificar com head
:
head 1 newcopy.csv
Com certeza, ele encontra meu arquivo e me mostra o segundo original agora (agora na primeira linha). Meu csv consiste em vários valores separados por vírgulas:
Jonathan Sampson,,,,[email protected],,,GA,United States,,
Jane Doe,Mrs,,,[email protected],,,FL,United States,32501,
Como indicado acima, alguns campos estão vazios. Eu quero classificar com base no campo de endereço de email, que é 4 ou 5 - dependendo se o comando sort
usa um índice baseado em zero. Então estou tentando o seguinte:
sort -t, +4 -5 newcopy.csv > newcopy.csv
Estou usando -t,
para indicar que meus campos são terminados pela vírgula, em vez de um espaço. Não tenho certeza se +4 -5
realmente classifica no campo de email ou não - eu poderia usar alguma ajuda aqui. E então newcopy.csv > newcopy.csv
para sobrescrever o arquivo original com novos resultados de classificação.
Depois de fazer isso, se eu tentar ler na primeira linha:
head 1 newcopy.csv
Eu recebo o seguinte erro:
head: cannot open '1' for reading: No such file or directory ==> newcopy.csv <==
De fato, se eu verificar meu diretório, o arquivo estará vazio e com 0 bytes.