Nowe posty

Autor Wątek: Zamiana małych liter nazwy pliku na duże  (Przeczytany 15302 razy)

bambus10

  • Gość
Zamiana małych liter nazwy pliku na duże
« dnia: 2007-09-15, 21:23:00 »
mam taki problem nigdy sie tym nie zajmowałem i nie wiem jak za to sie zabrac a taki mam temat skryptu:
utwórz skrypt który w pliku zmieni małe litery na duże i zapisze pod nową nazwą podaną przez użytkownika
tyle wymyśliłem i dalej nie wiem czy to tak ma być
#!/bin/bash
#
cat plik.txt | tr '[a-z]' '[A-Z]' | tee plik.txt | less
dziękuje z góry

[EDIT xis: zmieniłem tytuł wątku]

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #1 dnia: 2007-09-15, 22:05:55 »
> tyle wymyśliłem i dalej nie wiem czy to tak ma być
I niewiele brakuje, żeby Ci się udało.
Jeżeli mając już tyle nie możesz tego zrobić, to znaczy, że nie znasz podstaw shella. A domyślam się, że zadanie jest częścią pracy domowej, która właśnie po to została ci zadana, abyś poznał powłokę (Bash-a).

Istnieje bardzo dużo stron o Bashu, wiele z nich po polsku:
http://pl.wikipedia.org/wiki/Bash
http://www.dief.republika.pl/main.html
Kurs w drugim linku to naprawdę absolutne minimum wiedzy.

A `tee` niekoniecznie jest ci potrzebne, uciąłbym przed drugim pipe-m i użył czegoś innego.

Bardzo chętnie pomógłbym Ci napisać skrypt, którego byś do czegoś potrzebował. Ale nie będę odrabiał twojej pracy domowej: http://rtfm.killfile.pl/#praca_domowa . Ten link jest na górze strony, w akapicie "UWAGA!".

bambus10

  • Gość
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #2 dnia: 2007-09-16, 10:25:55 »
dobra mam juz ze zapisuje to w innym pliku al e jak zrobić żeby pytał o nazwę jaką chcę to zapisać
i jak wczytać inny plik tekstowy bo nie wiem czy bede miał podaną nazwe

#!/bin/bash
#
tr a-z A-Z lista.txt
to dzaiała ale musze za każdym razem zmieniać plik.txt i nazwe lepiej by było żeby pisał podać plik i nazwę do zapisu

xis

  • Gość
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #3 dnia: 2007-09-16, 12:23:31 »
Zapoznaj się z poleceniem 'read'.

bambus10

  • Gość
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #4 dnia: 2007-09-17, 15:35:52 »
a co to znaczy 'not a valid identifieread:

juz wiem

a jak wczytać plik bo pyta mnie "podaj ścieżke do pliku " jak mam to zrobić ??

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #5 dnia: 2007-09-18, 13:39:40 »
Czy ty nadal męczysz ten sam skrypt? :P

> a jak wczytać plik bo pyta mnie "podaj ścieżke do pliku " jak mam to zrobić ?

Podaj fragment kodu, który cię o to pyta. Ciężko coś stwierdzić bez tego.
Zawsze jest też manual (`man polecenie`).

bambus10

  • Gość
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #6 dnia: 2007-09-18, 18:20:53 »
tak dalej sie z tym męcze z góry dziękuje że mi pomagasz i pomożesz :)
#!/bin/bash
echo 'Witaj w skrypcie do zmiany
wielkości liter w pliku.'
echo '#####################################'
echo 'Po wpisaniu wciśnij Enter by przejść dalej.'
echo '#####################################'
read -erp " Podaj ścieżkę do pliku : " my_file
read -erp " Podaj nazwę nowego pliku :  " new_file
cat "$my_file" | tr [[:lower:]] [[:upper:]] > "$new_file"
exit $?

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #7 dnia: 2007-09-18, 20:49:50 »
Ściągnąłem i odpaliłem i działa pięknie :)

Ścieżkę podajesz albo jako absolutną:
/katalog/gdzie/pracujesz/plik1


albo relatywną (od miejsca wywołania skryptu), czyli wtedy powinno wyglądać w konsoli tak:

> cd /katalog/gdzie/pracujesz
> echo "Jakis tam tekst..." > plik1
> ./skrypt
Witaj w skrypcie do zmiany
wielkości liter w pliku.
#####################################
Po wpisaniu wciśnij Enter by przejść dalej.
#####################################
 Podaj ścieżkę do pliku : plik1
 Podaj nazwę nowego pliku :  plik2
> cat plik2
JAKIS TAM TEKST...

Wtedy "plik1" będzie w zmiennej $my_file, a "plik2" w $new_file.
Przed wywołaniem polecenia:
cat "$my_file" | tr [[:lower:]] [[:upper:]] > "$new_file"
zostanie ono zamienione na:
cat "plik1" | tr [[:lower:]] [[:upper:]] > "plik2"


PS. Pamiętaj, że przy wywołaniu:
> cd /katalog/gdzie
> ./pracujesz/skrypt
musisz podać "pracujesz/plik1".

bambus10

  • Gość
Zamiana małych liter nazwy pliku na duże
« Odpowiedź #8 dnia: 2007-09-19, 09:39:50 »
dziękuje wam wszystkim za pomoc mi w tej prostej dla was sprawie a dla mnie nie do przejścia bez pomocy