Jika sebuah file memiliki akhiran garis CR-LF gaya DOS / Windows, maka jika Anda melihatnya menggunakan alat berbasis Unix Anda akan melihat karakter CR ('\ r') di akhir setiap baris.
Perintah ini:
grep -l '^M$' filename
akan mencetak filenamejika file berisi satu atau lebih baris dengan ujung garis bergaya Windows, dan tidak akan mencetak apa pun jika tidak. Kecuali bahwa ^Mharus menjadi karakter carriage return literal, biasanya dimasukkan di terminal dengan mengetik Ctrl+ Vdiikuti oleh Enter
(atau Ctrl+ Vdan kemudian Ctrl+ M). Bash shell memungkinkan Anda menulis carriage return secara literal seperti $'\r'( didokumentasikan di sini ), sehingga Anda dapat menulis:
grep -l $'\r$' filename
Kerang lain mungkin menyediakan fitur serupa.
Anda dapat menggunakan alat lain sebagai gantinya:
awk '/\r$/ { exit(1) }' filename
Ini akan keluar dengan status 1(pengaturan $?ke 1) jika file tersebut berisi ujung garis gaya Windows, dan dengan status 0jika tidak, menjadikannya berguna dalam ifpernyataan shell (perhatikan kurangnya [tanda kurung ]):
if awk '/\r$/ { exit(1) }' filename ; then
echo filename has Unix-style line endings
else
echo filename has at least one Windows-style line ending
fi
File dapat berisi campuran akhiran gaya Unix dan gaya Windows. Aku menduga di sini bahwa Anda ingin mendeteksi file yang memiliki setiap Windows gaya akhir baris.