Algumas coisas:
-
Não analise a saída de
ls
. - Cite suas variáveis .
- %código%? Por quê?
Se eu entendi corretamente, você gostaria de diminuir a extensão de todos os nomes de arquivos sudo
e usar *.DOC
para criar arquivos de texto deles.
shopt -s nullglob
for doc in ./*.DOC; do
new_doc="${doc%.DOC}.doc"
txt_doc="${doc%.DOC}.txt"
catdoc "$doc" >"$txt_doc"
mv "$doc" "$new_doc"
done
Ou ainda mais curto:
shopt -s nullglob
for doc in ./*.DOC; do
catdoc "$doc" >"${doc%.DOC}.txt"
mv "$doc" "${doc%.DOC}.doc"
done
- O
catdoc
está usando a expansão do parâmetro${doc%.DOC}
de${parameter%word}
(ou qualquer shell POSIX) para remover o sufixobash
do nome do arquivo em.DOC
. - A configuração da opção
$doc
shell garantirá que nada seja correspondido pornullglob
se não houver arquivos com o sufixo*.DOC
. Se não definido, eu obteria a string.DOC
em*.DOC
se não houvesse arquivos$doc
. - Use um prefixo
.DOC
em./
para evitar problemas com nomes de arquivos que começam com./*.DOC
.