[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Erro "estranho" (sed - substituição em nome de diretó
From: |
Thobias Salazar Trevisan |
Subject: |
Re: [shell-script] Erro "estranho" (sed - substituição em nome de diretório) |
Date: |
Wed, 21 May 2003 07:46:58 -0300 (BRT) |
ae pedro,
On Tue, 20 May 2003, Pedro Henrique Ponchio wrote:
> Estou preparando um script de backup que crie o nome do arquivo usando o
> nome do diretório de onde foi feito o backup (só que ao invés de usar o
> nome no estilo /dir/dir/dir, usar o nome no estilo dir-dir-dir).
>
> A minha dificuldade está em usar o sed para substituir a "/" por um
> "-" no
> nome do arquivo (que usa o nome do diretório), pois o mesmo tenta
> modificar o próprio dir ao invés da "string". Vejam:
>
> DATA=`date +"%d-%m-%Y_%H:%M"`
> DESTINO="/backups"
> DIRETORIOS="/root/dir.txt"
> APPS=`cat $ORIGEM | wc -l` #arquivo fonte dos diretorios
> X=1
> echo " Temos = $APPS diretorios a backupear"
> until [ "$X" -gt "$APPS" ]
> do
> DIR=`sed -n ${X}p $ORIGEM | awk '{print $1}'`
> # Criando o nome do arquivo
> NOME_FIN=`$DIR | sed 's/[/]/-/g'`
problema. aqui você está executando o cmd que está dentro da var
$DIR. como tu que trocar o conteúdo, o certo é
NOME_FIN=`echo $DIR | sed 's/[/]/-/g'`
acho que um sed assim fica mais legÃvel também: sed 's,/,-,g'
você pode usar outro separador de campos ao invés do '/' já que
ele é a string que você está procurando.
> Dá pra contornar isso no próprio sed, ou alguma outra sugestão??
sim, pode usar o bash pra fazer isto. olhe:
$ DIR='/dir/dir/dir'
$ echo ${DIR//\//-}
-dir-dir-dir
os primeiros // para trocar todas as ocorrências. depois é
\//- troca '/' (mas nós temos que escapar, então \/) por '-'
falow
thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------