Fixed extracting of archive content.

The command "Extract the contents of a compressed tar file"
fails if file name contains spaces.
Fixed duplcated pattern.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2010-02-11 11:46:46 +00:00
parent fda1fba5ef
commit 83205ba97e
2 changed files with 33 additions and 17 deletions

View File

@ -222,33 +222,33 @@ U Uudecode marked news articles (needs work)
fi fi
echo "Please test the output file before deleting anything." echo "Please test the output file before deleting anything."
=+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.lz$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$| f \.tar\.bz2$ & t r =+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$ | f \.tar\.bz2$ & t r
x Extract the contents of a compressed tar file x Extract the contents of a compressed tar file
unset PRG unset PRG
case %f in case %f in
*.tar.bz2) *.tar.bz2)
PRG="bunzip2 -c %f" PRG="bunzip2 -c"
;; ;;
*.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z) *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
PRG="gzip -dc %f" PRG="gzip -dc"
;; ;;
*.tar.lzma) *.tar.lzma)
PRG="lzma -dc %f" PRG="lzma -dc"
;; ;;
*.tar.lz) *.tar.lz)
PRG="lzip -dc %f" PRG="lzip -dc"
;; ;;
*.tar.xz) *.tar.xz)
PRG="xz -dc %f" PRG="xz -dc"
;; ;;
*.tar.7z) *.tar.7z)
PRG="7za e -so %f" PRG="7za e -so"
;; ;;
*) *)
exit 1 exit 1
;; ;;
esac esac
$PRG | tar xvf - $PRG %f | tar xvf -
= t r = t r
+ ! t t + ! t t

View File

@ -184,17 +184,33 @@ U Уудекодирај означени чланак вести (тре
fi fi
echo "Молим да проверите излазну датотеку пре било каквог брисања." echo "Молим да проверите излазну датотеку пре било каквог брисања."
=+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.Z$| f \.tar\.bz2$ & t r =+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$ | f \.tar\.bz2$ & t r
x Издвој садржај компримоване датотеке врсте `tar' x Издвој садржај компримоване датотеке врсте `tar'
unset EXT unset PRG
case %f in case %f in
*.tar.bz2) EXT=tar_bz2;; *.tar.bz2)
PRG="bunzip2 -c"
;;
*.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
PRG="gzip -dc"
;;
*.tar.lzma)
PRG="lzma -dc"
;;
*.tar.lz)
PRG="lzip -dc"
;;
*.tar.xz)
PRG="xz -dc"
;;
*.tar.7z)
PRG="7za e -so"
;;
*)
exit 1
;;
esac esac
if [ "$EXT" = "tar_bz2" ]; then $PRG %f | tar xvf -
bunzip2 -c %f | tar xvf -
else
gzip -dc %f | tar xvf -
fi
= t r = t r
+ ! t t + ! t t