Предположим, что внутри поля, разделенного запятыми -, нет встроенных запятых, и вы хотите удалить столбцы 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
Этот инструмент также обрабатывает имена столбцов , если в файле есть заголовки для каждого столбца.
Пусть и не 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,