Busca por nomes de arquivos semelhantes

1. Busca por nomes de arquivos semelhantes

Tom Araujo
Formiga_ASR

(usa XUbuntu)

Enviado em 23/08/2021 - 14:20h

Oi Pessoal,

Por favor, poderiam me orientar na seguinte situação?

Em um mesmo diretório A eu tenho o seguintes arquivos:

Atendentes.txt
Recepcionista.txt
Faxineiras.txt
Porteiro.txt
Atendentes_extra.txt


Como essa situação acontece em outros diretórios, eu estou desenvolvendo um processo para automatizar, com isso gostaria de ajuda para os seguintes passos:

1 - Como buscar somente os nomes do arquivos iguais independente do _extra?

2 - Com juntar os arquivos "Atendentes.txt" e "Atendentes_extra.txt " no arquivo "Atendentes.txt"?

3 - Após juntar, apagar o arquivo que tem o _extra.

Muito obrigado pela ajuda.


  


2. Re: Busca por nomes de arquivos semelhantes

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/08/2021 - 18:47h

Formiga_ASR escreveu:

Oi Pessoal,

Por favor, poderiam me orientar na seguinte situação?

Em um mesmo diretório A eu tenho o seguintes arquivos:

Atendentes.txt
Recepcionista.txt
Faxineiras.txt
Porteiro.txt
Atendentes_extra.txt


Como essa situação acontece em outros diretórios, eu estou desenvolvendo um processo para automatizar, com isso gostaria de ajuda para os seguintes passos:

1 - Como buscar somente os nomes do arquivos iguais independente do _extra?

2 - Com juntar os arquivos "Atendentes.txt" e "Atendentes_extra.txt " no arquivo "Atendentes.txt"?

3 - Após juntar, apagar o arquivo que tem o _extra.

Muito obrigado pela ajuda.

Boa tarde Formiga....
'Orientação'.
Gere uma matriz com o nome do arquivo, trocando o que não é "LETRA" por espaço,
Você vai ter:
Atendentes extra txt
Atendentes txt
Faxineiras txt
Porteiro txt
Recepcionista txt
Se, a quantidade de campos > 2 ,
BINGO!
---------------------------------------------------------------------------------------------------------------
1 - Como buscar somente os nomes do arquivos iguais independente do _extra?
find
2 - Com juntar os arquivos "Atendentes.txt" e "Atendentes_extra.txt " no arquivo "Atendentes.txt"?
paste/cat
3 - Após juntar, apagar o arquivo que tem o _extra.
rm
---------------------------------------------------------------------------------------------------------------
Usei:
while, read, sed, grep, condicional, paste....

Bem tranquilo, tenta ai...
----------------------------------------------------------------------------------------------------------------

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________




3. Re: Busca por nomes de arquivos semelhantes

Adriano Christi
ACMM

(usa Ubuntu)

Enviado em 24/08/2021 - 02:52h


Formiga_ASR escreveu:

Oi Pessoal,

Por favor, poderiam me orientar na seguinte situação?

Em um mesmo diretório A eu tenho o seguintes arquivos:

Atendentes.txt
Recepcionista.txt
Faxineiras.txt
Porteiro.txt
Atendentes_extra.txt


Como essa situação acontece em outros diretórios, eu estou desenvolvendo um processo para automatizar, com isso gostaria de ajuda para os seguintes passos:

1 - Como buscar somente os nomes do arquivos iguais independente do _extra?

2 - Com juntar os arquivos "Atendentes.txt" e "Atendentes_extra.txt " no arquivo "Atendentes.txt"?

3 - Após juntar, apagar o arquivo que tem o _extra.

Muito obrigado pela ajuda.


Eu fiz uma versão usando o Python e depois, se quiser, pode dar uma incrementada no script. Ficou assim:

"""
1 - Recebe o caminho completo do diretório onde se quer organizar. Por exemplo: /home/usuario/Documentos/Pasta_qualquer.
2 - Lista todos os arquivos que estão no diretório. Sejam outros diretórios (pastas) ou arquivos
3 - Verifica o que é arquivo e o que é diretório.
4 - A partir do momento em que encontra diretórios no local, faz-se uma listagem dos arquivos que estejam dentro dos diretórios encontrados.
5 - Após fazer a listagem dos arquivos, verifica-se se há algum arquivo que contenha os caracteres "_extra" presentes no nome.
6 - Ao encontrar o arquivo que contenha os caracteres "_extra" presentes no nome, é feita uma leitura do conteúdo do arquivo que é guardado em uma lista (lines)
7 - Abre-se o arquivo que tem o nome parecido (sem os caracteres "_extra") para acrescentar o conteúdo do arquivo anterior para dentro do atual logo abaixo do seu conteúdo, ou seja, nada é sobrescrito.
8 - O arquivo que contenha os caracteres "_extra" presentes no nome é apagado.
9 - Entrada para o usuario digitar o caminho do diretório a ser organizado.
10 - Chamada da função que recebe como parâmetro o caminho completo do diretório a ser organizado.
"""

import os

def organize(d):
drt = d #(1)
arch = os.listdir(drt) #(2)

for x in arch:
if not os.path.isfile(os.path.join(drt, x)): #(3)
folder = os.listdir(os.path.join(drt, x)) #(4)
for y in folder:
if "_extra" in y: #(5)
with open(f'{drt}/{x}/{y}', 'r') as text_01: #(6)
lines = [ln.strip( ).split( ) for ln in text_01]
text_01.close( )

with open(f'{drt}/{x}/{y.split("_")[0]}.txt', 'a') as text_02: #(7)
content = [" ".join(c) for c in lines]

for item in content:
text_02.write(f'{item} \n')

text_02.close( )

os.remove(f'{drt}/{x}/{y}') #(8)
print( )

direct = input("Digite o caminho completo do diretório: ") #(9)

organize(direct) #(10)


Este script foi feito pensando em trabalhar no Linux (não tenho Windows pra tentar estruturá-lo pra esse sistema) e baseando-se em que, assim como deixa a entender que esse suposto diretório A que contém os arquivos, ele esteja dentro de um diretório que também contém os diretórios B, C, D, etc., ou seja, ele segue mais ou menos o seguinte esquema:

Diretório "Pai":
Diretório A:
Atendentes.txt
Recepcionista.txt
Faxineiras.txt
Porteiro.txt
Atendentes_extra.txt
Diretório B:
Atendentes.txt
Recepcionista.txt
Faxineiras.txt
Porteiro.txt
Atendentes_extra.txt
Diretório C:
Atendentes.txt
Recepcionista.txt
Faxineiras.txt
Porteiro.txt
Atendentes_extra.txt

Bom, foi dessa forma que eu entendi como seria estrutura do arquivo e diretório.
Espero que ajude.

Guns don't kill people. People kill people.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts