Я пытаюсь sort
csv на своем компьютере, но, похоже, стираю содержимое каждый раз, когда использую команду sort
. Я в основном создал копию моего CSV без первого ряда:
sed '1d' original.csv > newcopy.csv
Чтобы подтвердить, что в моей новой копии отсутствует первая строка, я могу проверить с помощью head
:
head 1 newcopy.csv
Конечно же, он находит мой файл и показывает мне оригинал второй (теперь первый ряд). Мой CSV состоит из множества значений, разделенных запятыми:
Jonathan Sampson,,,,foo@bar.com,,,GA,United States,, Jane Doe,Mrs,,,bar@foo.com,,,FL,United States,32501,
Как указано выше, некоторые поля пусты. Я хочу выполнить сортировку по полю адреса электронной почты, которое равно 4 или 5 - в зависимости от того, использует ли команда sort
индекс с нуля. Поэтому я пробую следующее:
sort -t, +4 -5 newcopy.csv > newcopy.csv
Поэтому я использую -t,
чтобы указать, что мои поля заканчиваются запятой, а не пробелом. Я не уверен, что +4 -5
самом деле сортирует в поле электронной почты или нет - я мог бы использовать некоторую помощь здесь. А затем newcopy.csv > newcopy.csv
перезаписать исходный файл новыми результатами сортировки.
После того, как я это сделаю, если я попытаюсь прочитать в первой строке:
head 1 newcopy.csv
Я получаю следующую ошибку:
head: не может открыть `1 'для чтения: нет такого файла или каталога ==> newcopy.csv <==
Конечно же, если я проверю свой каталог, файл теперь пуст, и 0 байтов.