Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Uran 14 Září 2012, 11:24:11

Název: zkraceni nazvu souboru - eval
Přispěvatel: Uran 14 Září 2012, 11:24:11
Nasel jsem skript, ktery resi rozbalovani zip souboru a zohlednuje jine kodovani nazvu nez utf8. U nekterych souboru vsak vytvori nazev jen z casti souboru. Zjistil jsem, ze kdyz z radku:  eval LANG="C" 7z x "$CWD/$1" odstranim "eval LANG="C"" tak se vytvori nazev korektne.

Nazev , ktery se pri pouziti skriptu skrati: Child L. - Ledová kletba.doc -> Child L. - Ledov
Nazev , ktery se pri pouziti skriptu neskrati: Kuttner, Henry - Elak z Atlantidy.doc -> Kuttner, Henry - Elak z Atlantidy.doc

Asi to bude tou teckou, ale nejak me nenapada proc?

Kód: [Vybrat]
#! /bin/bash
#
# Script rozbali subor .zip, prekoduje nazvy suborov a adresarov
# alebo rozbali subor .rar
# Potrebuje baliky: p7zip-full convmv unrar
#
# Limity:
# - spracuje jeden subor, nepozna *
# - nerozbali spravne zip z Linuxu - ine kodovanie
# - v zipe skonvertuje iba znaky z CP1250/Latin2
#

CWD=`pwd`

## Je zadany parameter?
if [ "$1" = "" ]; then
   echo "Pouzitie: 7unzip subor"
   exit
fi

## Existuje subor?
if [ ! -f "$CWD/$1" ] ;then
   echo "Subor $1 neexistuje"
   exit 1
fi

## Je to zip?
QWE=`file -b --mime-type "$CWD/$1" | grep application/zip`
if [ $? -eq 0 ] ;then
   TMPDIR=`mktemp -d`
   cd $TMPDIR
   eval LANG="C" 7z x "$CWD/$1"
   if [ $? -eq 0 ] ;then
      convmv --notest -r -f cp852 -t utf8 *
      cp -a * "$CWD"
   else
      echo "Subor $1 sa nerozbalil"
   fi
   cd "$CWD"
   #rm -rf $TMPDIR
   exit 0
fi

## Je to rar?
QWE=`file -b --mime-type "$CWD/$1" | grep application/x-rar`
if [ $? -eq 0 ] ;then
   unrar x "$CWD/$1"
   exit 0
fi

echo "Subor nie je archiv zip/rar"
exit 1
Název: Re:zkraceni nazvu souboru - eval
Přispěvatel: GdH 14 Září 2012, 11:45:42
Proč přemýšlíš nad nad tečkou, když to končí před písmenem 'á'? Je zřejmé, že je to písmeno mimo rozsah, se kterým ta věc pracuje, tedy nesedí kódování.
Název: Re:zkraceni nazvu souboru - eval
Přispěvatel: beer 14 Září 2012, 11:55:56
Citace
LANG="C"
?
Co takthle: LANG=cs_CZ.UTF-8?
Název: Re:zkraceni nazvu souboru - eval
Přispěvatel: Uran 14 Září 2012, 12:42:56
Citace
LANG="C"
?
Co takthle: LANG=cs_CZ.UTF-8?

Dekuji pomohlo.
Název: Re:zkraceni nazvu souboru - eval
Přispěvatel: beer 14 Září 2012, 13:00:12
Není zač.