msoliver
(usa Debian)
Enviado em 01/04/2022 - 16:46h
Minions escreveu:
msoliver escreveu:
Minions escreveu:
Com base na data da criação do arquivo organizar por ano => mês
Ex:
arquivo xml criado em 21/02/2001
mkdir -p 2001/02
mv arquivo xml para 2001/02
Boa noite Minions,
Sugestão:
com o comando:
stat -c "%n %W" arquivo
Temos na saída:
O nome do arquivo e a data da criação em "Unix TimeStamp"
Direcionando a saída para o awk,
temos:
"nome do arquivo" ano-mes
stat -c "%n %W" *.*|awk '{printf "%s %s\n" ,$1,strftime("%Y-%m", $2)}'
Concluindo:
Para o que deseja fazer, gere um txt com a saída do comando acima,
Leia esse arquivo linha a linha,
cheque se o diretório existe, caso negativo, crie,
Mova o arquivo para o diretório.
----------------------------------------------------------------------------------------------------------------------------------------
Exemplo:
stat -c "%n %W" /diretorio_Origem/*.*|awk '{printf "%s %s\n" ,$1,strftime("%Y-%m", $2)}' >> arquivos.txt
while IFS=" " read -r arq anomes;do
[ ! -e ${anomes} ] && mkdir ${anomes}
wait;
mv arq /${anomes}
done<arquivos.txt
É isso....
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
Obrigado em responde ao tópico.
Não esta batendo conforme anexo.
$ stat -c "%n %W"
stat: falta operando
Tente "stat --help" para mais informações.
$ stat -c "%n %W" *
Captura de tela_2020-11-13_21-34-01.png 1648829341
Captura de tela_2020-11-13_21-39-57.png 1648829341
Captura de tela_2020-11-16_00-22-59.png 1648829341
Captura de tela_2020-11-16_00-23-33.png 1648829341
Captura de tela_2020-11-16_00-25-11.png 1648829341
$ stat -c "%n %W" *.*|awk '{printf "%s %s\n" ,$1,strftime("%Y-%m", $2)}'
Captura 1969-12
Captura 1969-12
Captura 1969-12
Captura 1969-12
Captura 1969-12
Vamos por partes:
01
Não esta batendo conforme anexo.
$ stat -c "%n %W"
stat: falta operando
Tente "stat --help" para mais informações.
Faltou definir o arquivo!!!!!
----------------------------------------------------------------------------------------------------------------
02
stat -c "%n %W" *.*|awk '{printf "%s %s\n" ,$1,strftime("%Y-%m", $2)}'
Captura 1969-12
O strftime("%Y-%m", $2)
necessita do "Unix TimeStamp",
e, como os seus arquivos tem "ESPAÇO no NOME":
Captura de tela_2020-11-13_21-34-01.png 1648829341
O campo $2 = "de"
Por isso o ERRO!
Como "de" não é um número, foi interpretado como ZERO,
31 dez 1969 21:00:00
------------------------------------------------------------------------------------------------------------------
Exemplo:
cat texto.txt
Captura de tela_2020-11-13_21-34-01.png 1648829341
Captura de tela_2020-11-13_21-39-57.png 1648829341
Captura de tela_2020-11-16_00-22-59.png 1648829341
Captura de tela_2020-11-16_00-23-33.png 1648829341
Captura de tela_2020-11-16_00-25-11.png 1648829341
sed -r 's/(.*) /\1_/' texto.txt|awk -F"_" '{printf "%s;%s\n" ,$1,strftime("%Y-%m",$NF)}'
Captura de tela;2022-04
Captura de tela;2022-04
Captura de tela;2022-04
Captura de tela;2022-04
Captura de tela;2022-04
sed -r 's/(.*) /\1_/' texto.tx => troca o ultimo estaço por '_'
Dessa forma tenho:
Nome do arquivo: Captura de tela
Ano-Mês-Dia: 2020-11-13
Hora/ext: 21-34-01.png
Uts: 1648829341 Ultimo campo, $NF no awk
------------------------------------------------------------------------------------------------------------------
Dica:
Entenda o comando antes de USAR!!!!!
------------------------------------------------------------------------------------------------------------------
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________