удалить n столбцов из файла CSV [закрыто]

-1
05.09.2018, 21:16
2 ответа

Предположим, что внутри поля, разделенного запятыми -, нет встроенных запятых, и вы хотите удалить столбцы 3, 6 и 9.

$ cut -d, -f1,2,4,5,7,8,10 <file
12,1234,ABC60,3456,AB60,7580,PQ

Команда cutизвлекает указанные столбцы из файла. По умолчанию в качестве разделителей столбцов используются табуляции, но с помощью -d,мы устанавливаем разделитель в виде запятой. Опция -fпринимает номера столбцов (или диапазоны номеров столбцов ), которые необходимо извлечь.

Используя csvcutиз CSVkit , который является настоящим синтаксическим анализатором CSV, мы также можем обрабатывать поля, содержащие встроенные запятые:

$ csvcut -c 1,2,4,5,7,8,10 file
12,1234,ABC60,3456,AB60,7580,PQ

Этот инструмент также обрабатывает имена столбцов , если в файле есть заголовки для каждого столбца.

2
28.01.2020, 05:08

Пусть и не awk, но...

tr ',' '\n' < csv | grep -E -v '^[0-9]{2}-[0-9]{2}-[0-9]{4}' | tr '\n' ','
12,1234,ABC60,3456,AB60,7580,PQ,
0
28.01.2020, 05:08

Теги

Похожие вопросы