Câu trả lời:
$ file f1 f2 f3
f1: ASCII text, with CRLF, LF line terminators
f2: ASCII text, with CRLF line terminators
f3: ASCII text
Nếu bạn cảm thấy cần phải kiểm tra từng dòng trong tệp, bạn có thể làm điều này:
$ grep -c "^M" f1 f2
f1:0
f2:3
$ wc -l f1 f2
3 f1
3 f2
6 total
"^ M" đã được nhập bằng Ctrl + V Ctrl + M và là ký tự trả về vận chuyển (CR) ASCII.
Ở đây, chúng ta thấy rằng tệp F1 có ba dòng nhưng không có CR, vì vậy tất cả các kết thúc dòng phải là các kiểu độc lập theo phong cách Unix.
Tệp f2 có số dòng và CR bằng nhau nên có thể đoán được rằng nó sử dụng các kết thúc dòng CR, LF như được sử dụng bởi MSDOS và Windows.
file -m magicfile f1 f2 f3
Trên Windows, một cách nhanh chóng để nói là mở tệp của bạn trong Notepad. Notepad sẽ chỉ hiển thị ngắt dòng trên các chấm dứt kiểu cửa sổ (CR + LF) và không kết thúc unix (LF). Vì vậy, văn bản unix của bạn sẽ trông như thế này:
Line1Line2Line3Line4
trong khi đó, văn bản windows sẽ trông như thế này:
line1
line2
line3
line4
Tôi không quen thuộc lắm với nền tảng unix / linux, nhưng tôi chắc chắn rằng bạn có thể sử dụng các bản hack tương tự với các chương trình như gedit hoặc emacs.
c=($(perl -0777ne 'print $_ =~ tr/\n//; print " ";
print $_ =~ tr/\r//;'))
if ((!(c[0] + c[1]))) ;then echo no line endings
elif (( c[0] && !c[1] )) ;then echo LF
elif (( !c[0] && c[1] )) ;then echo CR
elif (( c[0] == c[1] )) ;then echo CRLF
else echo "anbigious LF ${c[0]} CR ${c[1]}"
fi
Lưu ý, vì lợi ích của tốc độ, chỉ có các cá nhân \rvà \ns được tính, nhưng đó sẽ là một tệp khá kỳ quặc có số lượng bằng nhau của cả hai loại và chưa phải là tệp CRLF của Windows ...
Cũng lưu ý rằng công cụ * nix filekhông thực hiện toàn bộ tập tin, trong khi perltập lệnh này thì có. Bạn chưa đề cập đến nền tảng nào bạn muốn nó chạy trên; Tôi đã sử dụng bashtập lệnh để kiểm tra đầu ra của perl, nhưng có thể thay đổi thành cmdtập lệnh Window .
Bạn chỉ có thể dẫn tập tin của bạn đến nó.
filekhông xuất hiện trạng thái kết thúc dòng nếu nó có thể tìm thấy kết quả khớp gần hơn ASCII, nghĩa làsetup.py: a python script text executable. Một người dường như không thể tìm thấy một lá cờ để thay đổi hành vi đó.