Plik tekstowy Windows wydaje się uszkodzony w Ubuntu po przeniesieniu USB


0

Spotkałem dzisiaj coś bardzo dziwnego.

Oto co się stało: Napisałem krótki skrypt Pythona (aby sprawdzić łączność z hostem) podczas pracy z PyDev. Przeniosłem go z mojego laptopa z systemem Windows 7 na stację roboczą Ubuntu za pomocą pamięci USB, a plik wyglądałby jak banda bełkotu. Próbowałem ponownie zapisać plik i zmienić jego nazwę, ale to nie pomogło. Próbowałem wyświetlić plik na innej stacji roboczej Ubuntu i to samo się stało. Nie wpłynęło to na żadne inne moje pliki Pythona. Wątpię, aby problem tkwił w moim napędzie kciukowym, ponieważ mogę go doskonale odczytać na laptopie.

Ostatecznie postanowiłem wysłać plik pocztą elektroniczną do siebie, co rozwiązało problem. Czy ktoś wie, co mogło się stać?


2
"Szwargot"? Pomogłoby to dołączyć próbkę tego, co widzisz.
Wyzard

Opublikuję zrzut ekranu, kiedy jutro rano będę pracować.
Danny Chia

Dziwne, zrobiłem kilka zmian w pliku Pythona i nie wydaje się już bełkotać. Być może sektor na dysku przenośnym został uszkodzony w taki sposób, że był nieczytelny tylko w Ubuntu. Kto wie?
Danny Chia

Odpowiedzi:


1

Na podstawie podanych przez ciebie informacji podejrzewam, że może to wynikać z różnicy w końcówkach linii używanych w * nix i Windows. Sprawdzić ta strona na Wikipedii.

Możesz potwierdzić, że koniec linii jest przyczyną problemu, sprawdzając go za pomocą narzędzia, które może zrzucić znaki ascii. W Ubuntu możesz użyć hexdump

hexdump <filename> 

A oto przykład ilustrujący różnicę w końcach linii między dwoma systemami. Plik wejściowy to prosty plik tekstowy o nazwie sample.txt ze słowami line1 i line2 w osobnych wierszach

$ cat sample.txt
line1
line2

Wyjście sample.txt utworzone w systemie Linux

sample.txt:
00000000  6c69 6e65 310a 6c69 6e65 320a           line1.line2.

Dane wyjściowe sample.txt utwórz w systemie Windows

sample.txt:
00000000  6c69 6e65 310d 0a6c 696e 6532 0d0a      line1..line2..

Aby przekonwertować między rodzajami zakończeń linii spróbuj dos2unix lub fromtodos .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.