Ответ 1
sed
, вероятно, самый быстрый. Я также предложил бы альтернативу awk
awk 'NR==1; FNR==1{next} 1' file* > output
выводит первую строку из первого файла, затем пропускает все остальные первые строки из остальных файлов.
Тайминги:
Я пробовал 10000 строк длиной по 100 файлов по 200MB (не уверен). Вот худшее время на моем сервере.
real 0m0.429s
user 0m0.360s
sys 0m0.068s
спецификации сервера (маленький монстр)
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 12
On-line CPU(s) list: 0-11
Thread(s) per core: 1
Core(s) per socket: 6
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
Stepping: 2
CPU MHz: 2394.345
BogoMIPS: 4789.86
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 15360K
NUMA node0 CPU(s): 0-11