Ajuda com comando sed

1. Ajuda com comando sed

vinicius alves silva
red_vinicius

(usa Debian)

Enviado em 02/03/2018 - 10:07h

Bom dia,
Estou com o seguinte problema. Tenho um script que acessa determinado diretório, e copia o arquivo desse diretorio para o hd externo, renomeando todos os arquivos da pasta e acrescentando no final do arquivo a data de criação. Porem esse script só funciona 100% quando a data de criação tem dois digitos. do dia 1 ao dia 9, por ter um espaço antes do numero, ele copia só o mês :(
segue parte do script

=========================
origem="/media/ArqBackups/*"
destino="/media/pendrive/"

for i in $(ls $origem)
do
nome=$(basename $i)
date=$(ls -l $i | cut -d" " -f 6,7 | sed "s/ /-/")
cp -uv $i ${destino}$nome.$date-$(date +%Y)
===========

A resposta que tenho quando sao dias com 2 digitos é isso: "BKPArquivos_Departamentos_sex.zip.Jan-19-2018"
Agora quando é dia com um digito é "BKP_Arquivos_UsuariosOff.zip.Mar--2018"

Não consegui remover o espaço que tem quando ele lista e aparece _1 onde _ é espaço vazio =(


  


2. Re: Ajuda com comando sed

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 02/03/2018 - 10:51h

Sugiro usar um formato diferente para a data do arquivo:

$ stat -c %y arquivo.txt | awk '{print $1}'
2018-03-02

ou
$ ls -l --time-style=long-iso arquivo.txt | awk '{print $6}'
2018-03-02



3. \o\O/o/

vinicius alves silva
red_vinicius

(usa Debian)

Enviado em 05/03/2018 - 17:24h

me salvou, desse jeitinho funcionou da forma correta
mto obg
\o






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts