Czy istnieje polecenie Bash do konwersji \ r \ n na \ n?
Kiedy przesyłam skrypty z systemu Windows do systemu Linux, potrzebuję takiego narzędzia, aby wszystko działało.
linux
bash
newlines
carriage-return
użytkownik25321
źródło
źródło
dos2unix
jest zwykle dostępny, w przeciwnym raziesed -e 's/\r$//'
dos2unix
jest taki program dla systemu Unix / Linux, który robi to, co chcesz.Odpowiedzi:
Jest:
źródło
Tłumacz ( tr ) jest dostępny we wszystkich Uniksach:
źródło
\r
. Są jednak bardzo rzadkie.Z sed i znajdź ten koniec z
.txt, .php, .js, .css
:źródło
Istnieje narzędzie uniksowe o nazwie,
conv
które może konwertować zakończenia linii. Często jest wywoływany za pomocą softlinków dou2d
lubd2u
lubunix2dos
lubdos2unix
.Dodatkowo istnieją narzędzia zwane
fromdos
itodos
.źródło
Za pomocą man 1 ed (który edytuje pliki w miejscu bez wcześniejszej kopii zapasowej - w przeciwieństwie do: sed .. -i ".bak" ...):
źródło
Robienie tego z POSIX jest trudne:
POSIX Sed nie obsługuje
\r
lub\15
. Nawet jeśli tak, opcja na miejscu-i
nie jest POSIXPOSIX awk robi wsparcie
\r
i\15
, jednak-i inplace
opcja ta nie jest POSIXd2u i dos2unix nie są narzędziami POSIX , ale ex jest
POSIX ex nie obsługuje
\r
,\15
,\n
lub\12
Aby usunąć zwroty karetki:
Aby dodać zwrot karetki:
źródło
Tak, użyj
dos2unix
. Na przykład:źródło
(Każdy istnieje również dla systemów innych niż Ubuntu, ale te linki są przydatne.)
źródło