Как получить первый столбец каждой строки во входном CSV файле и вывести его в новый файл? Я думаю, используя awk
, но не уверен, как это сделать.
Как получить первый столбец каждой строки из файла CSV?
Ответ 1
Попробуйте следующее:
awk -F"," '{print $1}' data.txt
Он разделит каждую строку ввода в файле data.txt
на разные поля на основе символа ,
(как указано в -F
) и напечатает первое поле (столбец) на stdout.
Ответ 2
Можно сделать:
$ cut -d, -f1 data.txt
Ответ 3
echo "a,b,c" | cut -d',' -f1 > newFile
Ответ 4
Вход
a,12,34
b,23,56
Код
awk -F "," '{print $1}' Input
Формат
awk -F <delimiter> '{print $<column_number>}' Input
Ответ 5
Это может быть достигнуто с помощью grep
:
$ grep -o '^[^,]\+' file.csv
Ответ 6
Использование Perl:
perl -F, -lane 'print $F[0]' data.txt > data2.txt
Используются следующие параметры командной строки:
-
-n
цикл вокруг каждой строки входного файла -
-l
удаляет новые строки перед обработкой и добавляет их обратно -
-a
автоматический режим - разделение входных строк на массив@F
. По умолчанию разбивается на пробелы. -
-e
выполнить код perl -
-F
модификатор авторасширения, в этом случае разбивается на,
Если вы хотите изменить исходный файл на месте, используйте параметр -i
:
perl -i -lane 'print $F[0]' data.txt
Если вы хотите изменить исходный файл на месте и сделать резервную копию:
perl -i.bak -lane 'print $F[0]' data.txt
Если ваши данные разделены пробелами, а не разделены запятыми:
perl -lane 'print $F[0]' data.txt