Skocz do zawartości

Nazwa Pliku W Dwóch Linijkach


borzole

Rekomendowane odpowiedzi

Już miałem kiedyś ten problem, ale nie pamiętam żebym znalazł rozwiązanie.

 

Po masowej zmianie nazw plików zostało mi sporo "dziwactw". Ewidentnie coś skopałem w skrypcie :ph34r: .

Do rzeczy:

Pliki mają w nautilusie nazwy w dwóch/trzech linijkach. Nie dlatego, że są długie tylko w nazwie zawieruszył się jakiś symbol łamiący linię. Nie widać go w nautilusie, a w konsoli np. polecenie ls wyświetla miejsce złamania jako "?" i tyle. Mogę to ręcznie dłubać i zmieniać nazwę, ale tych plików jest dużo. Chciałem to zmienić skryptem, ale nie wiem jak się odwołać do znaku, który nie wiadomo czym jest? tzn:

 

mv abc?xyz abcxyz

ponadto w nazwach plików nie występuje żaden schemat, więc nie mogę uznać że to jest czwarty znak, albo na końcu drugiego wyrazu. Normalnie zonk.

 

zakładając że można użyć ASCII

http://www.cyberciti.biz/faq/unix-linux-se...s-nonprintable/

 

jak przetworzyć nazwę pliku na kod ascii? albo jak inaczej zgadnąć kod tego dziwnego znaku?

Odnośnik do komentarza
Udostępnij na innych stronach

Cos mi sie widzi, ze sie przy pisaniu skryptu gdzies machnales i podmienilo Ci czesc znakow w nazwach na '\n' ? ... albo jakikolwiek inny ASCII symbol z seri non-printable przy okazji powodujacy przejscie do nowej linii...

 

A jak by tak (zgodnie z porada do ktorej linka podales) potraktowac nazwy sedem i zamienic znaki 0-31 na cokolwiek a zakresu printable?

 

 

Zaskakujaco duzo informacji o NewLine tutaj ...

Odnośnik do komentarza
Udostępnij na innych stronach

oki, udało się :)

 

zrobiłem skrypcik do tego, właściwie trochę się rozpędziłem i mam bardzo uniwersalny skrypt do masowej zmiany nazw plików:

 

http://files.getdropbox.com/u/409786/pub/bin/rename-convert

 

ale mam pytanie poza konkursem, w skrypcie chciałbym łączyć parametr tzn:

 

cmd="tekst1"

cmd+="tekst2"

cmd+="tekst3"

 

problem w tym, że chciałbym łączyć strumienie tzn.

 

cmd="polecenie1"

cmd+="|polecenie2"

cmd+="|polecenie2"

...

 

i tego za nic nie mogę osiągnąć, bo znak "|" jest traktowany jako tekst i parametr poprzedniego polecenia.

Mógłbym wówczas elastycznie łączyć strumienie i sposób przetwarzania nazw.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...