
Consigo ter uma lista de nomes de arquivos em uma lista chamada 'a' usando o comando do terminal linux em Júpiter da seguinte maneira;
a=!find . -type f \! -name '*.*' -print
Para ter os nomes dos arquivos sem extensões, o comando correspondente funciona no terminal Linux;
find . -type f -exec sh -c '
for pathname do
pathname=$( basename "$pathname" )
printf "%s\n" "${pathname%.*}"
done' sh {} +
Mas como posso executar este comando no Jupyter atribuindo-o a um nome 'a' como acima. O código abaixo não funcionou.
a=!find . -type f -exec sh -c '
for pathname do
pathname=$( basename "$pathname" )
printf "%s\n" "${pathname%.*}"
done' sh {} +
Também tentei alterar o recuo das linhas, recebo um erro de sintaxe ou nada. Da minha pesquisa na linha de comando do loop for em Júpiter, o '!' talvez deva estar em um local diferente. Como posso fazer isso funcionar?
Responder1
Resolvi esse problema de uma maneira diferente se alguém tiver um problema semelhante. Eu usei a linha de comando
a=!find . -type f \! -name '*.*' -print
isso criou uma lista de nomes de arquivos com extensões. Eu removi as extensões de cada elemento.
files = [os.path.splitext(fname)[0] for fname in a]