shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script-pt] Organizar Arquivos


From: Julio C. Neves
Subject: Re: [shell-script-pt] Organizar Arquivos
Date: Thu, 13 Jul 2023 10:05:48 -0300

Caro Thiago, 
Acho que as linhas a seguir funcionarão, mas não testei.
while IFS=' -.' read Cla Dia Mes Ano Lx
do
    [[ ! -e $Ano ]] && mkdir $Ano
    [[ ! -e $Ano/$Mes ]] && mkdir $Ano/$Mes
    echo Classificados_$Ano$Mes$Dia >> $Ano/$Mes/$Dia
done < arqs
Veja detalhes em: https://www.dicas-l.com.br/shell-linux
Abraços,
Julio


Em qui., 13 de jul. de 2023 às 08:43, Thiago Guimarães Corrêa Keuchguerian por (shell-script-pt) <shell-script-pt@nongnu.org> escreveu:
Bom dia pessoal.
    Estou tentando montar um script que vai ler os arquivos de um diretório e gostaria que ele pegasse a data do nome do arquivo e criasse o diretório e movesse o arquivo para dentro dele...

Arquivos
    Classificados 01-07-2023.pdf
    Classificados 02-07-2023.pdf
    Classificados 03-07-2023.pdf
    ....

    Eu preciso criar a pasta
    2023
        07   
            01
                Classificados_20230107.pdf
            02
                Classificados_20230207.pdf

e assim por diante..

    Alguma sugestão de melhoria desse script abaixo que não está funcionando..kk

Script que montei até o momento.
    
#!/bin/bash

# Diretório onde os arquivos estão localizados
diretorio="/srv/Flip/Classificados"

# Percorre todos os arquivos no diretório
for arquivo in "$diretorio"/Classificados*.pdf; do
    if [ -f "$arquivo" ]; then
        # Extrai a data do nome do arquivo
        data_str=$(basename "$arquivo" | cut -d ' ' -f 2 | cut -d '.' -f 1)
        data="" -d "$data_str" +"%d-%m-%Y")

        # Extrai ano, mês e dia da data
        ano=$(date -d "$data" +"%Y")
        mes=$(date -d "$data" +"%m")
        dia=$(date -d "$data" +"%d")

        # Cria a estrutura de pastas com base na data
        pasta_ano="$diretorio/$ano"
        pasta_mes="$pasta_ano/$mes"
        pasta_dia="$pasta_mes/$dia"
        mkdir -p "$pasta_dia"

        echo $arquivo
        # Move o arquivo para a pasta correspondente à data
        cp "$arquivo" "$pasta_dia"
    fi
done




Atenciosamente
Thiago Guimarães Corrêa Keuchguerian
Fone: (017) 9-8804-2658. (Operadora Oi)
Skype: thi.keuchguerian
_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]