Se a ordem em que os arquivos são concatenados não for importante, use:
cat AB_20151127_120000_*_SEGMENT_FINAL.csv > AB_20151127_120000_SEGMENT_FINAL.csv
Se o pedido for importante, você terá que ser criativo. Se você sabe o número de segmentos, 599 por exemplo, você pode usar expansão de chave (o \
está lá apenas para me deixar imprimir o comando em duas linhas para facilitar a leitura):
cat AB_20151127_120000_{0..599}_SEGMENT_FINAL.csv > \
AB_20151127_120000_SEGMENT_FINAL.csv
Se você não fizer isso, ainda poderá usar a expansão de chaves. Basta escolher um número grande o suficiente para garantir que todos os arquivos sejam incluídos e ignorar as mensagens de erro sobre arquivos inexistentes:
cat AB_20151127_120000_{0..599}_SEGMENT_FINAL.csv > \
AB_20151127_120000_SEGMENT_FINAL.csv 2>/dev/null
Como alternativa, você pode gerar uma lista de nomes de arquivos classificados e usá-los:
cat $(printf '%s\n' AB_20151127_120000_*_SEGMENT_FINAL.csv | sort -nt_ -k4) > \
AB_20151127_120000_SEGMENT_FINAL.csv
O printf
imprimirá cada nome de arquivo seguido por uma nova linha que será passada para sort
, que ordenará numericamente ( -n
) no quarto campo ( -t4
) onde os campos são definidos por _
( -t_
).