Когда мы обрабатываем наши данные csv, мы генерируем много выходных файлов с 30 000 строк в каждом из них. Все они имеют одинаковые столбцы / поля. Все они также в формате csv, и мы помещаем их в одну и ту же папку на сервере Linux. Файлы уникально названы с использованием комбинации даты, времени и числовых цифр. См. Ниже.
AB_20151127_120000_0_SEGMENT_FINAL.csv
AB_20151127_120000_1_SEGMENT_FINAL.csv
AB_20151127_120000_2_SEGMENT_FINAL.csv
AB_20151127_120000_3_SEGMENT_FINAL.csv
.
.
.
AB_20151127_120000_599_SEGMENT_FINAL.csv
Итак, теперь нам нужно объединить / соединить все их в один большой файл с именем: AB_20151127_120000_SEGMENT_FINAL.csv (обратите внимание на недостающие числовые цифры из объединенного файла)
[d2 ] Я попробовал awk, как показано ниже, но он не работает. Пожалуйста, скажите мне, что я сделал неправильно.awk '"AB_20151127_120000_" NR-1 "_SEGMENT_FINAL.csv"' > AB_20151127_120000_SEGMENT_FINAL.csv
Если у вас есть доступ к оболочке Zsh, задача может быть сведена к одной команде:
cat AB_20151127_120000_*(n)_SEGMENT_FINAL.csv >AB_20151127_120000_SEGMENT_FINAL.csv
Это связано с тем, что определитель globing (n) заставляет шаблон globing * расширяться к списку имен файлов, отсортированных в их естественном порядке, в отличие от их лексикографического порядка.
Для сравнения, расширение имени файла в Bash:
$ for f in *; do echo "$f"; done
AB_20151127_120000_0_SEGMENT_FINAL.csv
AB_20151127_120000_10_SEGMENT_FINAL.csv
AB_20151127_120000_1_SEGMENT_FINAL.csv
AB_20151127_120000_2_SEGMENT_FINAL.csv
AB_20151127_120000_3_SEGMENT_FINAL.csv
Расширение имени файла в Zsh с использованием [ f6] классификатор globbing:
% for f in *(n); do echo "$f"; done
AB_20151127_120000_0_SEGMENT_FINAL.csv
AB_20151127_120000_1_SEGMENT_FINAL.csv
AB_20151127_120000_2_SEGMENT_FINAL.csv
AB_20151127_120000_3_SEGMENT_FINAL.csv
AB_20151127_120000_10_SEGMENT_FINAL.csv