Strona 1 z 1

[C] przenoszenie źródła

: 9 lis 2008, o 21:00
autor: redemptorek
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

: 9 lis 2008, o 22:02
autor: smiechowiec
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ć.

[C] przenoszenie źródła

: 9 lis 2008, o 22:10
autor: soku11
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.

[C] przenoszenie źródła

: 9 lis 2008, o 23:42
autor: redemptorek
póki co udało mi się rozwiązać to poleceniem:

Kod: Zaznacz cały

sed 's/.$//' plika > plikb
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:

Kod: Zaznacz cały

sed -e 's/$/\r/' plikb > plika
(zgodnie z ozn. wyżej)

ale że to wyżej straszy składnią, metody bardziej przyjaznej poszukam wśród Waszych rad (dzieki!) :wink: