Considerando sua resposta, você não quer realmente criar um arquivo de texto, mas apenas procurar por arquivos e processá-los. Você pode usar o comando find
para isso, por exemplo, para renomear todos os arquivos terminados em .i
substituindo i
por o
do:
find -maxdepth 1 -type f -name "*.i" -exec bash -c 'mv "$0" "${0/i/o}"' "{}" \;
Explicações
-
-maxdepth 1
fica no diretório atual
-
-type f
somente arquivos de pesquisa
-
-name "*.i"
arquivos de pesquisa que terminam em .i
-
-exec
executa o seguinte comando no arquivo, {}
é substituído pelo nome do arquivo, precisa ser finalizado com \;
-
bash -c
inicia um subshell executando os seguintes comandos, adicionando "{}"
, damos a ele o nome do arquivo como argumento 0
-
mv "$0" "${0/i/o}"
renomeia o arquivo substituindo i
por o
- apenas um exemplo, é claro, pode ser substituído por qualquer comando (cadeia de) que você goste
-
\;
termina a opção -exec
Para comandos que podem levar mais de um arquivo de cada vez, você pode substituir \;
by +
para encadear os argumentos, veja Qual é a diferença entre usar '+' (mais) e ';' (ponto-e-vírgula) no comando -exec? .