jak sprawdzić koniec wiersza pliku tekstowego, aby sprawdzić, czy jest to format uniksowy czy dosowy?
Muszę przekonwertować plik tekstowy na format dos (kończąc każdy wiersz za pomocą0x0d0x0a
raczej niż0x0a
tylko), jeśli plik ma format uniksowy (0x0a
tylko na końcu każdej linii).
Wiem, jak to przekonwertować (sed 's/$/^M/'
), ale nie w jaki sposób wykrywać znaki końca pliku.
Używam ksh.
Każda pomoc byłaby doceniana.
[Aktualizacja]: Rodzaj zorientował się, a oto mój skrypt ksh do wykonania sprawdzenia.
[qiangxu@host:/my/folder]# cat eol_check.ksh
#!/usr/bin/ksh
if ! head -1 $1 |grep ^M$ >/dev/null 2>&1; then
echo UNIX
else
echo DOS
fi
W powyższym skrypcie^M
należy wstawićvi
zCtrl-V
iCtrl-M
.
Chcesz wiedzieć, czy istnieje lepsza metoda.