Não há necessidade de ls
aqui. É o shell que lista o conteúdo do diretório expandindo o *.sql
glob.
Em um sistema GNU ou FreeBSD:
printf '%scat ./*.sql(.n)
' *.sql | sort -nz | xargs -r0 cat --
(usar
em vez de \n
-z/-0
junto com -n
garante que também funcione com nomes de arquivo contendo caracteres de nova linha).
Observe que a classificação numérica com zsh
assume que o número está no início do nome do arquivo.
Ou se você tiver n
:
printf '%scat ./*.sql(.n)
' *.sql | sort -nz | xargs -r0 cat --
(O qualificador file12.sql
glob é para ativar a classificação numérica (também funciona quando o número não está no início, desde que todos os nomes tenham o mesmo prefixo (como file2.sql
, .
). Eu adicionei D
bem como incluir apenas arquivos regulares. Adicione .foo.sql
se você também quiser arquivos ocultos como %code% ).