Com a opção extglob no bash, você pode fazer exatamente isso:
$ shopt -s extglob
$ cat file2.js !(file[23].js) file3.js > /var/www/output.js
Existe uma maneira de cat
de todos os arquivos em um determinado diretório, mas com um arquivo específico no início e no final?
Por exemplo, digamos que eu tenha: file1.js, file2.js, file3.js, file4.js, file5.js - Efetivamente, gostaria de cat file2.js file*.js file3.js > /var/www/output.js
Eu tentei algumas variações destes
find ! -name "file2.js" ! -name "file3.js" -type f -exec cat file2.js {} file3.js > /var/www/js/output.js \;
find ! -name "file2.js" ! -name "file3.js" -type f | xargs -I files cat file2.js files file3.js > /var/www/output.js
mas o melhor que posso conseguir é adicionar o arquivo 2.js antes e adicionar o arquivo 3 depois de todos os outros arquivos (várias vezes)
Eu sei que eu poderia especificar os arquivos na ordem que eu queria manualmente, mas isso não é sustentável (estou esperando, potencialmente > 100 arquivos).
Analisei man cat
, bem como alguns sites dedicados a xargs
, find
e cat
sem sucesso.
Obrigado antecipadamente.
Com a opção extglob no bash, você pode fazer exatamente isso:
$ shopt -s extglob
$ cat file2.js !(file[23].js) file3.js > /var/www/output.js
Tags find