Mam problem z plikami z kodem źródłowym tworzonymi pod Windowsem jako txt a przenoszonymi pod UNIXa. W edytowanych już pod UNIXem plikach każdą linię kończy znak: ^M, który - jeśli nie zostanie usunięty - powoduje błąd kompilacji. Wiem, że pewna sekwencja komend wydana powoce powinna rozwiązać problem, niestety, mimo że googlam zawzięcie, takowej nie znajduję.
A moze istnieje inna prosta i skuteczna metoda z tego wybrniecia
[C] przenoszenie źródła
-
- Użytkownik
- Posty: 40
- Rejestracja: 7 lip 2007, o 09:43
- Płeć: Mężczyzna
- Lokalizacja: z Folwarku
- Podziękował: 13 razy
- Pomógł: 2 razy
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
[C] przenoszenie źródła
Pod dosem (windows, mac) na kónu każdej linii kryją się 2 znaki o kodach 13 (CR) i 10 (LF).
W unix jest tylko znak o kodzie 10.
Rozwiązań jest kilka
Przy kopiowaniu pliku programem ftp ustawiamy tryb kopiowania nie binarny, a tekstowy.
Wtedy pliki będą miały poprawne znaki w obu systemach.
Ewentualnie polecenie dos2unix usunie zbędne znaki 13.
Edytory pod windows czasem mają ustawienia, w których podaje się jak ma się kończyć linia, więc wystarczy to odpowiednio ustawić.
W unix jest tylko znak o kodzie 10.
Rozwiązań jest kilka
Przy kopiowaniu pliku programem ftp ustawiamy tryb kopiowania nie binarny, a tekstowy.
Wtedy pliki będą miały poprawne znaki w obu systemach.
Ewentualnie polecenie dos2unix usunie zbędne znaki 13.
Edytory pod windows czasem mają ustawienia, w których podaje się jak ma się kończyć linia, więc wystarczy to odpowiednio ustawić.
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
[C] przenoszenie źródła
To wszystko zalezy w czym piszesz Piszac w np. CodeBlocks masz w opcjach edytora cos takiego jak End-Of-Line Mode, gdzie mozesz wybrac 'CR LF', 'CR' lub 'LF'. Coprawda ja nigdy nie mialem z tym problemu i nigdy tego nie zmienialem, no ale moze sie przydac jak widac Pozdrawiam.
-
- Użytkownik
- Posty: 40
- Rejestracja: 7 lip 2007, o 09:43
- Płeć: Mężczyzna
- Lokalizacja: z Folwarku
- Podziękował: 13 razy
- Pomógł: 2 razy
[C] przenoszenie źródła
póki co udało mi się rozwiązać to poleceniem:
gdzie plika jest *.txt lub *.c kompatybilnym z Windosowym końcem wiersza, zaś plikb - z UNIXowym
...a gdyby ktoś chciał w drugą stronę, zadziałać powinno:
(zgodnie z ozn. wyżej)
ale że to wyżej straszy składnią, metody bardziej przyjaznej poszukam wśród Waszych rad (dzieki!)
Kod: Zaznacz cały
sed 's/.$//' plika > plikb
...a gdyby ktoś chciał w drugą stronę, zadziałać powinno:
Kod: Zaznacz cały
sed -e 's/$/\r/' plikb > plika
ale że to wyżej straszy składnią, metody bardziej przyjaznej poszukam wśród Waszych rad (dzieki!)