Mesclando arquivos de texto com base no nome do arquivo

3

Eu tenho centenas de arquivos com o seguinte formato:

2013_01_19_xyxyxyx.txt
2013_01_19_xyxyxyx.txt
2014_03_21_xyxyxyx.txt
2014_03_21_zxzxzxz.txt
2014_03_22_abababa.txt
2014_03_22_cbcbcbc.txt
etc.

Gostaria de mesclar arquivos em:

2013_01_19.txt
2014_03_21.txt
2014_03_22.txt

Como eu poderia conseguir isso?

    
por Greg 09.04.2014 / 16:13

1 resposta

3

O seguinte deve funcionar desde que você não tenha nenhum sublinhado na última parte de qualquer um dos nomes de arquivos (e nada mais no diretório que corresponda ao glob):

for file in ????_??_??_*.txt; do
  echo cat "$file" ">>""${file%_*}.txt"
done

Remova a parte echo e as aspas em torno do >> quando tiver certeza de que você tem o que deseja.

    
por 09.04.2014 / 16:24