Похоже, что Вы ищете 'out_fname =', не просто 'out_fname'.
Я или сделал бы это в соединении awk и оболочки или в Python. В awk/shell:
awk '{for(i=0;i<NF;i++) {if (index($i, 'out_fname=')) {split($i,A,/=/);print A[i]}}' "$@" |
while read filename; do
if [ ! -f $filename ]; then echo $filename; fi
done > stillneed.txt
В Python:
import fileinput, os
stillneed = open("stillneed.txt", "w")
for line in fileinput.input():
for filename in [l.split('=')[1] for l in line.split() if l.find('out_fname=')!=-1]:
if not os.path.exists(filename):
print >>stillneed, filename
Можно использовать -C
опция в некоторых реализациях tar для определения основного пути для извлечения. Следующее будет работать на Ваш пример.
tar -xvz -C /local -f websites.tgz
Или если Ваш tar
не имеет -z
или -C
опции:
gunzip < websites.tgz | (cd /local && tar xvf -)