Bir dosyada DOS / Windows tarzı CR-LF satır sonları varsa, o zaman Unix tabanlı bir araç kullanarak bakarsanız, her satırın sonunda CR ('\ r') karakterleri görürsünüz.
Bu komut:
grep -l '^M$' filename
yazdırılacaktır filenamedosyası Windows tarzı satır sonları ile bir veya birden fazla satır içeriyorsa ve bunları yapmazsa hiçbir şey yazdırılır. Bunun dışında ^M, genellikle yazarak terminali girilen bir hazır taşıyıcı dönüş karakteri olmak zorunda Ctrl+ Vardından Enter
(veya Ctrl+ Vve sonra Ctrl+ M). Bash kabuğu, değişmez bir satır başı $'\r'( burada belgelenen ) gibi yazmanızı sağlar , böylece:
grep -l $'\r$' filename
Diğer kabuklar da benzer bir özellik sağlayabilir.
Bunun yerine başka bir araç kullanabilirsiniz:
awk '/\r$/ { exit(1) }' filename
Bu durumuyla çıkılacak 1(ayar $?için 1dosya herhangi bir Windows tarzı satır sonları içeriyorsa) ve durumuyla 0bir kabuk içinde yararlı hale yapmazsa ifaçıklamada (eksikliğini not [parantez ]):
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
Bir dosya, Unix ve Windows tarzı çizgi sonlarının bir karışımını içerebilir. Sana sahip dosyaları algılamak istiyorum burada tahmin ediyorum herhangi Windows stili satır sonları.