sed com variaveis [RESOLVIDO]

1. sed com variaveis [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/12/2009 - 14:47h

meu script eh esse


--------------------------------

#!/bin/bash

DIR=`pwd`
ARQLOG=programas-instalados
DIRLOG=/tmp/DGF
LOG=$DIRLOG/$ARQLOG
BIN=/usr/local/bin

if [ ! -d "$LOG" ]; then
rm -rf "$DIRLOG"
mkdir /tmp/DGF
fi

if [ -z "$LOG" ]; then
touch $LOG
fi

ls $DIR/dgf* &> "$LOG"

for prog in `grep dgf* $LOG`
do

cp "$prog" $BIN

done

------------------------------------------------------------

o erro esta no final

.
.
.

cp "$prog" $BIN
.
.
.

que está aparecendo o seguinte quando executo o script

.
.
.
cp: impossível obter estado de "/tmp/DGF/programas-instalados:/home/douglas/outros/scripts/DGF/dgf": Arquivo ou diretório não encontrado
.
.
.

ou seja, a variavel $prog está tendo o seguinte valor

.
.
/tmp/DGF/programas-instalados:/home/douglas/outros/scripts/DGF/dgf
.
.

estou querendo reatribuir o falor do $prog para o msm valor sem o "/tmp/DGF/programas-instalados:"

ja tentei colocar isso no script:
prog=` echo "$LOG" | sed -e s/\/$LOG://g `

eu sei que está errado, mas eh a primeira vez que mexo com sed




  


2. MELHOR RESPOSTA

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/12/2009 - 17:44h

prog=`echo $prog | sed -e 's/.*://'`

po desculpa ai faltou fechar aspas no final


3. Re: sed com variaveis [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/12/2009 - 16:06h

Vou dar uma olhada no sed, mas tenta isso:

prog=` echo "$LOG" | cut -d: -f2`


4. Re: sed com variaveis [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/12/2009 - 16:10h

via sed:

prog=`echo $LOG | sed -e 's/.*://'


5. Re: sed com variaveis [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/12/2009 - 16:16h

deu erro

instalador: line 23: unexpected EOF while looking for matching ``'

veja:


=======================================================================

root@CASA:/home/douglas/outros/scripts/DGF# bash -xv instalador
#!/bin/bash

DIR=`pwd`
pwd
++ pwd
+ DIR=/home/douglas/outros/scripts/DGF
ARQLOG=programas-instalados
+ ARQLOG=programas-instalados
DIRLOG=/tmp/DGF
+ DIRLOG=/tmp/DGF
LOG=$DIRLOG/$ARQLOG
+ LOG=/tmp/DGF/programas-instalados
BIN=/usr/local/bin
+ BIN=/usr/local/bin

if [ ! -d "$LOG" ]; then
rm -rf "$DIRLOG"
mkdir /tmp/DGF
fi
+ '[' '!' -d /tmp/DGF/programas-instalados ']'
+ rm -rf /tmp/DGF
+ mkdir /tmp/DGF

if [ -z "$LOG" ]; then
touch $LOG
fi
+ '[' -z /tmp/DGF/programas-instalados ']'

ls $DIR/dgf* &> "$LOG"
+ ls /home/douglas/outros/scripts/DGF/dgf /home/douglas/outros/scripts/DGF/dgfdesktop /home/douglas/outros/scripts/DGF/dgfscan /home/douglas/outros/scripts/DGF/dgfvariavel

for prog in `grep dgf* $LOG`
do

prog=`echo $LOG | sed -e 's/.*://'
cp "$prog" $BIN

done
instalador: line 23: unexpected EOF while looking for matching ``'
instalador: line 27: syntax error: unexpected end of file

======================================================================

a linha 23 eh a que vc me passou

e a 27 nao existe

o script tem 26 linhas


6. Re: sed com variaveis [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/12/2009 - 16:49h

acho que o $LOG deveria ser na verdade $prog, ou seja,
de
prog=`echo $LOG | sed -e 's/.*://'
para
prog=`echo $prog | sed -e 's/.*://'


mas, cara, me manda um pedacinho do $LOG


7. Re: sed com variaveis [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/12/2009 - 17:09h

deu o msm erro

olha o resultado quando debuguei

as variaveis estão assim

DIR=`pwd`
ARQLOG=programas-instalados
DIRLOG=/tmp/DGF
LOG=$DIRLOG/$ARQLOG
BIN=/usr/local/bin

e no final o prog

for prog in `grep dgf* $LOG`

na verdade esse dgf* sao os meus outros scripts


8. RESOLVIDO!

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/12/2009 - 21:04h

funcionou perfeitamente

mas nao consegui entender direito oq aconteceu

prog=`echo $prog | sed -e 's/.*://'`

sed - eh o comando... certo!
-e - eh a opção... ????? para que serve?
s/.*:// - ??????? pq no inicio tem um "s" e pq nao tem um "g" no final?? para que serve o "."???






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts