Fórum Root.cz

Hlavní témata => Software => Téma založeno: Jakub Velímský kdy 12. 11. 2012, 14:39:43

Název: Bash: jak ochránit znak backquote
Přispěvatel: Jakub Velímský kdy 12. 11. 2012, 14:39:43
Zdravím,

potřebuji v bashi z logu programu lftp vypreparovat seznam stažených souborů. Relevantní řádky mají formát

Transferring file `soubor'


Používám následující příkaz:

files=`cat ${LOG} | grep -e "Transferring" | awk '{print $3}' | tr -d \'\``


Ten selhá s chybou

command substitution: line 39: unexpected EOF while looking for matching ``'
command substitution: line 40: syntax error: unexpected end of file


Evidentně je problém s ochranou znaku backquote uvnitř příkazu, zkoušel jsem i varianty s 0, 1 a 2 zpětnými lomítky, nebo použít sed místo tr, vše marno.
Prosím, poraďte.
Název: Re:Bash: jak ochránit znak backquote
Přispěvatel: Mrkva kdy 12. 11. 2012, 15:26:52
grep -e "Transferring" | awk '{print $3}' | tr -d "\'\`"
Název: Re:Bash: jak ochránit znak backquote
Přispěvatel: ms kdy 12. 11. 2012, 15:35:52
grep -e "Transfering" | sed -e 's/^.*`//' -e "s/'[^']*$//"
Název: Re:Bash: jak ochránit znak backquote
Přispěvatel: deadmail kdy 12. 11. 2012, 17:55:45
Preco vsetci miesaju grep so sedom, grep+tr s awk-om, ked na to staci vzdy druhy uvedeny?

sed -nr "s/^Transferring files \`(.*)'$/\1/p"
Název: Re:Bash: jak ochránit znak backquote
Přispěvatel: deadmail kdy 12. 11. 2012, 17:58:47
Citace od: Mrkva kdy 12. 11. 2012, 15:26:52
grep -e "Transferring" | awk '{print $3}' | tr -d "\'\`"


nebude fungovat ak v nazve budu medzery ...
Název: Re:Bash: jak ochránit znak backquote
Přispěvatel: Jakub Velímský kdy 12. 11. 2012, 23:56:28
Dík za všechny ohlasy, nakonec jsem použil

awk '{print substr($3,2,length($3)-2)}'

Název: Re:Bash: jak ochránit znak backquote
Přispěvatel: Kit kdy 13. 11. 2012, 08:44:48
Citace od: Jakub Velímský kdy 12. 11. 2012, 23:56:28
Dík za všechny ohlasy, nakonec jsem použil

awk '{print substr($3,2,length($3)-2)}'

Chybí ti tam to filtrování a vstup
files=`awk '/Transferring/ {print substr($3,2,length($3)-2)}' <"${LOG}"`