Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: zkraceni nazvu souboru - eval  (Přečteno 1427 krát)

Uran

  • Aktivní člen
  • *
  • Příspěvků: 341
zkraceni nazvu souboru - eval
« kdy: 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
"Pouze text v MS Wordu je opravdu čistý, příteli."

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:zkraceni nazvu souboru - eval
« Odpověď #1 kdy: 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í.

beer

  • Host
Re:zkraceni nazvu souboru - eval
« Odpověď #2 kdy: 14 Září 2012, 11:55:56 »
Citace
LANG="C"
?
Co takthle: LANG=cs_CZ.UTF-8?

Uran

  • Aktivní člen
  • *
  • Příspěvků: 341
Re:zkraceni nazvu souboru - eval
« Odpověď #3 kdy: 14 Září 2012, 12:42:56 »
Citace
LANG="C"
?
Co takthle: LANG=cs_CZ.UTF-8?

Dekuji pomohlo.
"Pouze text v MS Wordu je opravdu čistý, příteli."

beer

  • Host
Re:zkraceni nazvu souboru - eval
« Odpověď #4 kdy: 14 Září 2012, 13:00:12 »
Není zač.

 

Provoz zaštiťuje spolek OpenAlt.