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.
grep -e "Transferring" | awk '{print $3}' | tr -d "\'\`"
grep -e "Transfering" | sed -e 's/^.*`//' -e "s/'[^']*$//"
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"
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 ...
Dík za všechny ohlasy, nakonec jsem použil
awk '{print substr($3,2,length($3)-2)}'
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}"`