Nowe posty

Autor Wątek: Problem ze skryptem  (Przeczytany 4264 razy)

sebo939

  • Gość
Problem ze skryptem
« dnia: 2016-09-19, 16:10:05 »
Witam, to mój pierwszy post
Mam problem ze skryptem, mam kilkadziesiąt plików z rozszerzeniem txt w zwykłym utworzonym katalogu i chciałbym żeby każdy z nich został przeniesiony do katalogu o takiej samej nazwie tylko że bez rozszerzenia

Skrypt prezentuje się tak:
#!bin/bash

for i in 'ls *.txt'
do
tmp='basename $i .txt'
mkdir $tmp
mv $i $tmp/
done

Problem polega na tym że gdy skrypt jest uruchamiany pojawiają się 2 błędy:
mkdir: nie można utworzyć katalogu ".txt" Plik istnieje
mv: nie można wykonać stat na "ls": Nie ma takiego pliku ani katalogu


Na dodatek wszystkie pliki z rozszerzeniem txt znikają
« Ostatnia zmiana: 2016-09-19, 17:36:25 wysłana przez sebo939 »

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Odp: Problem ze skryptem
« Odpowiedź #1 dnia: 2016-09-19, 18:09:41 »
#!/bin/bash

for i in `ls *.txt`
do
tmp=`basename $i .txt`
mkdir $tmp
mv $i $tmp/
done
Używasz niewłaściwych znaków cudzysłowów.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3059
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Problem ze skryptem
« Odpowiedź #2 dnia: 2016-09-19, 19:53:23 »
#!/bin/bash

# FOR natywnie obsługuje pliki
for i in *.txt
do
  # Pliki mogą mieć spacje w nazwach - trzeba się zabezpieczyć
  tmp=`basename "$i" .txt`
  mkdir -p "$tmp"
  mv "$i" "$tmp/"
done
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

sebo939

  • Gość
Odp: Problem ze skryptem
« Odpowiedź #3 dnia: 2016-09-23, 02:42:32 »
#!/bin/bash

# FOR natywnie obsługuje pliki
for i in *.txt
do
  # Pliki mogą mieć spacje w nazwach - trzeba się zabezpieczyć
  tmp=`basename "$i" .txt`
  mkdir -p "$tmp"
  mv "$i" "$tmp/"
done

Niestety, nie pomogło, wyskakują teraz dwa błędy:
1)mkdir:nie można utworzyć katalogi "": Nie ma takiego pliku ani katalogu
2)mv: nie można utworzyć zwykłego pliku "plik*.txt": Brak dostępu

Oba błędy pojawiają się w ilości takiej jakiej są te pliki txt.


Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3059
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Problem ze skryptem
« Odpowiedź #4 dnia: 2016-09-23, 05:37:18 »
Czym edytujeszu skrypt, że wstawiło ci cudzysłowy drukarskie?
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

sebo939

  • Gość
Odp: Problem ze skryptem
« Odpowiedź #5 dnia: 2016-09-23, 17:15:36 »
Napisałem dokładnie teraz dokładnie tak jak twój skrypt i nie wywala błędów lecz zamiast stworzyć osobne katalogi to tworzy mi jeden w którym znajdują się wszystkie pliki z rozszerzeniem txt

Dobra, trochę z opóźnieniem napisane bo dysk mi padł, poradziłem sobie, skrypt działa, tak jak napisał Paweł. Dzięki i pozdrawiam
« Ostatnia zmiana: 2016-10-12, 19:38:05 wysłana przez sebo939 »