Как объединить несколько файлов одного формата в один файл? [дубликат]

На этот вопрос уже есть ответ:

I имеют много файлов следующего формата (все они содержат заголовки и имеют одинаковое количество столбцов):

col1,col2,tt2,mm3
123,292810,1501223371-7504710,yes
1234,286130,1501223549-101722650,yes
334,276300,1501223650-71196600,yes
445,290100,1501224239-87923810,yes

Количество строк в каждом файле разное, но всегда небольшое (около 20-40 строк). Все файлы находятся в одном каталоге.

Я хочу объединить все эти несколько файлов в один без повторения заголовков. Как это сделать с помощью сценария bash?

0
задан 31 July 2017 в 03:56

3 ответа

Вы могли использовать awk связать файлы, пропуская первую строку каждого файла, если это не первая строка всех файлов.

Например, если файлы называют part-00000 через part-00199 затем

awk 'FNR==1 && NR!=1 {next} {print}' part-{00000..00199}
2
ответ дан 2 November 2019 в 20:52

Я захватил бы заголовки из одного из файлов и затем захватил бы все от строки 2 вперед от всех файлов.

head -1 part-00000 > output.csv
tail -n +2 part-* >> output.csv
2
ответ дан 2 November 2019 в 20:52

Простая альтернатива другим решениям использует cat и grep как:

cat * | grep -v '^col1,col2' > newfile
1
ответ дан 2 November 2019 в 20:52

Другие вопросы по тегам:

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