Estou usando o bash. Suponha que eu tenha um arquivo chamado filelist
, que contém uma lista de arquivos:
stuff/**/*.csv # to keep it simple (without loops), assume just one entry
#*.txt
#foo.md
#bar.bin
E quero expandir isso:
ls $(cat filelist)
Eu recebo:
ls: não é possível acessar 'stuff/**/*.csv': esse arquivo ou diretório não existe
O que eu quero é expandir isso em uma lista de arquivos que eu possa enviar para meu aplicativo principal para processamento. Como eu posso fazer isso?
Meu palpite é que você espera
**
fazer globbing recursivo, certo? Mas isso não está habilitado por padrão no Bash e precisa ser habilitado viashopt -s globstar
(da mesma forma quedotglob
eextglob
). Você também pode verificar o valor comshopt globstar
.(Ou
shopt |grep glob
para repetir a sugestãoset -o |grep glob
nos comentários; observe a diferença entreshopt
eset -o
aqui.)