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
catdocestá usando a expansão do parâmetro${doc%.DOC}de${parameter%word}(ou qualquer shell POSIX) para remover o sufixobashdo nome do arquivo em.DOC. - A configuração da opção
$docshell garantirá que nada seja correspondido pornullglobse não houver arquivos com o sufixo*.DOC. Se não definido, eu obteria a string.DOCem*.DOCse não houvesse arquivos$doc. - Use um prefixo
.DOCem./para evitar problemas com nomes de arquivos que começam com./*.DOC.