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

[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
|
----------------------------



reply via email to

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