Представьте, что у меня есть каталог, содержащий много подкаталогов, каждый из которых содержит некоторое количество CSV-файлов с одинаковой структурой (одинаковое количество столбцов и все с одинаковым заголовком).
Я знаю, что могу запустить из родительской папки что-то вроде
find ./ -name '*.csv' -exec cat {} \; > ~/Desktop/result.csv
И это будет работать нормально, за исключением того, что заголовок повторяется каждый раз (один раз для каждого файла).
Я также знаю, что могу сделать что-то вроде sed 1d <filename>
или tail -n +<N+1> <filename>
, чтобы пропустить первую строку файла.
Но в моем случае это кажется немного более специализированным. Я хочу сохранить заголовок один раз для первого файла, а затем пропустить заголовок для каждого файла после этого.
Кто-нибудь знает, как этого добиться, используя стандартные инструменты Unix (такие как find, head, tail, sed, awk и т. Д.) И bash?
Например, входные файлы
/folder1
/file1.csv
/file2.csv
/folder2
/file1.csv
Где каждый файл имеет заголовок:
A,B,C
и каждый файл имеет одну строку данных 1,2,3
Желаемый результат будет:
A,B,C
1,2,3
1,2,3
1,2,3
помечен как дубликат
Мне кажется, что это отличается от других вопросов, таких как , и , , в частности, потому что эти решения ссылаются на файл1 и файл2 в решении. Мой вопрос спрашивает о структуре каталогов с произвольным числом файлов, где я не хотел бы печатать каждый файл по одному.