Duzy skrypt SO zmiana liter


export IFS="
"
for file in *; do mv ${file} `echo ${file} | tr "A-Z" "a-z"`; done
Prosta modyfikacja pozwala na zamianę małych liter na duże:

export IFS="
"
for file in *; do mv ${file} `echo ${file} | tr "a-z" "A-Z"`; done
Nadesłał 07-09-2003 Robert Jaroszuk


#!/bin/bash
for nazwa in * ; do
mv "$nazwa" `echo "$nazwa" | tr '[A-Z]' '[a-z]'`
done


echo $text | tr "[:lower:]" "[:upper:]"

#!/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 $?

Ś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".


Rozwiązanie 1:
www.win2.cn/f

Rozwiązanie 2:

Tworzymy plik np. o nazwie tolower i w nim umieszczamy:

#!/usr/bin/perl -w

die "ARGV?" unless ($#ARGV+1);

for $i (@ARGV)
{i
$j="\L$i";
unless ($i eq $j) {
system "mv", "$i", "$j";
}
}
Uwagi: uruchamianie odbywa się poprzez ./tolower *html . (tolower powinien mieć atrybut pliku wykonywalnego, jeśli nie ma to chmod +x tolower). Oczywiście zamiast *html możemy podstawiać inne interesujące nas nazwy plików lub wszystkie: *.

Nadesłał 08-09-2003 Adam Kolany

Rozwiązanie 3:

Z wielkich liter na małe:

for stary in *.HTM ; do
nowy="$(echo $stary | tr '[:upper:]' '[:lower:]')"
mv "$stary" "$nowy"
done
Z małych na wielkie:

for stary in *.HTM ; do
nowy="$(echo $stary | tr '[:lower:]' '[:upper:]')"
mv "$stary" "$nowy"
done
Uwagi: Zamiast *.HTM można oczywiście podstawiać inne nazwy... "Klasy '[:upper:]' i '[:lower:]' powinny się zachowywać poprawnie z lokalizacją".




#v+
#!/bin/bash
IFS="
"
for nazwa in `ls -1`; do
NOWA=`echo $nazwa|tr -s [:upper:] [:lower:]`
test $nazwa != $NOWA && mv $nazwa $NOWA
done
#v-

Wyszukiwarka

Podobne podstrony:
Duzy skrypt SO wyszukiwanie
07 Zmiana bielizny poscielowej choremu lezacemu przez dwie osoby skrypt
06 Zmiana bielizny poscielowej chorego skrypt
zmiana rozm liter
09 Zmiana bielizny osobistej chorego skrypt
SO skrypt by Efcia
8 37 Skrypty w Visual Studio (2)
MATLAB cw Skrypty
syst oper skrypty 2
Skrypt Latex
skrypt rozdz 2 4
Biochemia zwierząt skrypt UR
T2 Skrypt do lab OU Rozdział 6 Wiercenie 3

więcej podobnych podstron