Я не уверен, что вы подразумеваете под cat the value of c1 c2 c3 c4 c5 and c9
, однако, если вы хотите фильтровать только эти столбцы, вы можете использовать следующую команду awk
:
awk 'BEGIN{OFS=FS=","}{print $1,$2,$3,$4,$5,$9}' sample.csv
ВХОД:
more sample.csv
c1,c2,c3,c4,c5,c6,c7,c8,c9
123,B006195,T,O,INDIVIDUAL,25^5820200^,2018-04-25,13,NEW
12,C06195,T,O,INDIVIDUAL,25^5820200^,2018-04-25,13,NEW
12345,B00619,T,O,IND,25^5820200^,2018-04-25,13,OLD
ВЫВОД:
awk 'BEGIN{OFS=FS=","}{print $1,$2,$3,$4,$5,$9}' sample.csv
c1,c2,c3,c4,c5,c9
123,B006195,T,O,INDIVIDUAL,NEW
12,C06195,T,O,INDIVIDUAL,NEW
12345,B00619,T,O,IND,OLD
Пояснения:
В качестве разделителя полей (вход, выход) вы определяете ,
(BEGIN{OFS=FS=","}
), а затем просто печатаете для каждой строки столбцы, которые необходимо отобразить {print $1,$2,$3,$4,$5,$9}
после перенаправления вывода в новый файл CSV
Если вы считаете, что awk
является избыточным для этой задачи, вы также можете просто использовать команду cut
(-d','
- для определения ,
в качестве разделителя, а -f...
- для указания, какое поле нужно быть сохраненным):
$ cut -d',' -f1,2,3,4,5,9 sample.csv
c1,c2,c3,c4,c5,c9
123,B006195,T,O,INDIVIDUAL,NEW
12,C06195,T,O,INDIVIDUAL,NEW
12345,B00619,T,O,IND,OLD