Bash loop por arquivos em um diretório

Bash Loop Through Files Directory



No Ubuntu, incluindo o Bash, os loops tornaram possível aplicar operações em vários arquivos. O loop é a coisa mais eficaz, pois permite que o usuário aplique a mesma lógica ao item repetidamente usando uma pequena linha de código.

Para entender o conceito de loop nos arquivos no diretório, você precisa acessar o aplicativo e os serviços do Ubuntu. Quando você tem alguns privilégios, só pode operar com arquivos e diretórios.







Você deve ter instalado o Bash no sistema operacional Ubuntu. Em algumas instalações, ele é instalado por padrão na atualização de pacotes. Se já estiver instalado, você precisa atualizar a versão porque ela deve estar acima de 4. Para continuar o guia atual, você precisa manter a versão acima de 4. Para verificar a versão do Bash pré-instalado em seu sistema, use o comando no terminal Ubuntu.



$Bash--versão



Portanto, você deve executar algumas funções em arquivos e diretórios. Você pode executar os comandos explicados abaixo em qualquer diretório de sua escolha. Mas, para ser mais preciso, é preferível criar um novo diretório de modo que todos os pertences deste diretamente sejam facilmente acessíveis ao abri-lo.





A primeira etapa é criar um diretório. Pegamos um nome de amostra do diretório abc. Crie um diretório executando o comando.

$mkdirabc



Depois de criar o diretório, agora você precisa executar todos os comandos nele. Portanto, após a criação do diretório, mude para esse diretório. Use o comando abaixo citado:

$CDabc

Depois de ir para o diretório, agora crie alguns arquivos usando o comando touch.

$tocararquivo1.txt

Muitos métodos são usados ​​para criar um arquivo no Ubuntu. Além do comando touch, usamos o comando echo aqui para criar um arquivo e adicionar o conteúdo dele coletivamente em um único comando:

$jogou foraLinux, ubuntu, Postgresql>arquivo7.txt

Este arquivo é criado em um diretório simples que está sendo executado por padrão. Portanto, o nome do diretório recém-criado não é adicionado ao prompt de comando. Você também pode criar arquivos usando um intervalo e expansão no comando de toque.

$tocarArquivo-{1..8}.TXT

Ao usar este comando, novos arquivos de extensões .txt serão criados usando um único comando.

Depois disso, agora você pode percorrer o diretório recém-criado. Exibe os nomes dos arquivos. Como temos que fazer um loop pelos arquivos presentes no diretório, precisamos de um loop. Os loops são muito eficazes de usar, pois buscam os dados em menos tempo, exigindo menos entrada. Aqui, usaremos um loop for. Usando este loop, cada nome de arquivo será mostrado na próxima linha.

$para Arquivo no *;Faz jogou fora $ file;feito

* é usado para todos os arquivos presentes neste diretório. Isso permite que o loop ‘for’ pegue todos os arquivos. Mas para tornar a saída precisa, você pode adicionar alguns termos com o sinal de asterisco. Por exemplo, ‘file- *’ é usado para todos os arquivos que começam a partir do arquivo. E * .txt para buscar os arquivos que possuem extensões .txt. Usaremos esses exemplos mais adiante no artigo.

Este loop funcionará de forma que busque todos os arquivos do diretório e, em seguida, exiba todos os arquivos por meio do comando echo. O sinal $ aqui representa o nome do arquivo. A partir do resultado, você pode ver que cada nome de arquivo é mostrado.

Depois de verificar os arquivos criados exibindo os nomes dos arquivos, agora é hora de inserir o valor nos arquivos porque os arquivos criados estão vazios. Isso pode ser feito manualmente abrindo cada arquivo no editor de texto e gravando os dados. A segunda opção é inserir os dados em cada arquivo por meio do comando no terminal. Mas requer tempo para inserir os dados em cada arquivo por meio de um único comando para cada arquivo. Mas isso pode ser feito fácil e coletivamente usando o loop for em um único comando.

$para Arquivo no *;Faz jogou fora -2 $ file nLinux Ubuntu> $ file;feito

Após a execução do comando, o valor foi inserido em cada arquivo que criamos. Quando usado com echo, o sinalizador ‘-e’ preservará a nova linha no arquivo. Para ver os dados inseridos, você pode navegar até o diretório ‘abc’. Agora abra qualquer arquivo de texto. O arquivo não está mais vazio.

‘$ File mostrará o nome do arquivo primeiro no arquivo e os dados inseridos serão visualizados na segunda linha porque n é usado para mudar as palavras usadas depois disso para outra linha. Você também pode verificar os dados inseridos por meio do comando.

$para Arquivo no *;Faz gato $ file;feito

O comando Cat é usado para buscar os dados presentes em todos os arquivos do diretório.

Tanto o procedimento de entrada quanto de busca dos dados pode ser feito por meio de um único comando.

$para Arquivo no *;Faz jogou fora-E$ fileprogramação nbash> $ file;gato $ file;feito

A primeira etapa é gravar os dados no arquivo e depois exibi-los. Ao executar o comando, a saída será a seguinte:

Cada arquivo contém o mesmo valor. Isso ocorre por causa do loop ‘for’.

Conhecemos o loop para buscar os dados e inserir os valores, etc., mas o loop também é usado para criar backups. Esses arquivos têm a extensão .bak no final. Agora execute o comando backup no shell para ver o backup de cada arquivo.

$para Arquivo no *;Faz cp $ file $ file.atrás;feito;

A palavra-chave cp é usada para fazer backup de todos os arquivos. Agora, para ver os arquivos nos quais este comando é aplicado. Usamos o comando como:

$ls- a

Agora é visível na saída que os detalhes dos arquivos são mostrados. Data, nome do arquivo, nome do usuário e hora também em que foi excluído. Além disso, você tem uma cópia precisa de cada arquivo.

Se quisermos apenas os arquivos jpeg. Vamos usar isso no comando

$para Arquivo no *.jpeg;Faz jogou fora $ file;feito

Isso trará apenas os nomes das imagens.

Um simples achado também pode realizar a mesma função. Ele irá buscar todos os arquivos com extensão .sh.

$achar. - nome*sh

Usaremos a palavra-chave find no loop for.

$para Arquivo no *;Fazachar. Arquivo.*;feito

Isso trará todos os arquivos para o diretório atual. Eles têm extensões de .bak, .jpeg, .txt. etc.

Agora, se você quiser ver o nome de todos os arquivos de diretório e os dados dentro deles, isso também é feito pelo loop ‘for’.

$para Arquivo no *;Faz Arquivo $ file;feito

Conclusão

O loop pelos arquivos em qualquer diretório não é mais difícil, como sabemos, usando loops no Bash e executando nos sistemas operacionais Linux. Este tutorial é um guia completo para criar, acessar e realizar operações no diretório usando um loop ‘for’.