Không chắc chắn những gì bạn có nghĩa là chính xác bởi "không đáng tin cậy", nhưng bạn có thể muốn thử:
find . -name '*.php' -print0 | xargs -0 grep -l '^M$'
này sử dụng hơn tàn bạo-tên tập tin-với-gian-trong-chúng-thân thiện lựa chọn và chỉ tìm thấy kí tự xuống dòng ngay trước khi kết thúc dòng.
Hãy ghi nhớ rằng ^M
là một đơn CTRLM nhân vật, không hai ký tự.
Và cũng sẽ liệt kê các tệp ngay cả một dòng ở chế độ DOS, có thể là những gì bạn muốn, vì những tệp đó sẽ là tệp UNIX bị trình chỉnh sửa không phải UNIX tạo ra.
Dựa trên bản cập nhật của bạn mà Vim được báo cáo tập tin của bạn như là định dạng DOS:
Nếu vim là báo cáo nó như là định dạng hệ điều hành DOS, sau đó mỗi dòng kết thúc với CRLF
. Đó là cách vim hoạt động. Nếu ngay cả một dòng không có CR
, thì nó được coi là định dạng UNIX và các ký tự ^M
hiển thị trong bộ đệm. Nếu đó là tất cả định dạng DOS, các ký tự ^M
không được hiển thị:
Vim sẽ tìm cả hai đuôi và dòng unix, nhưng Vim có tùy chọn tích hợp cho định dạng unix.
- Nếu tất cả các dòng trong tệp kết thúc bằng CRLF, định dạng tệp dos sẽ được áp dụng, nghĩa là mỗi CRLF bị xóa khi đọc dòng vào bộ đệm và tùy chọn bộ đệm 'ff' sẽ là dos.
- Nếu một hoặc nhiều dòng kết thúc bằng LF, định dạng tệp unix sẽ được áp dụng, nghĩa là mỗi LF được loại bỏ (nhưng mỗi CR sẽ có mặt trong bộ đệm và sẽ hiển thị là^M) và bộ đệm ' ff 'tùy chọn sẽ được unix.
Nếu bạn thực sự muốn biết những gì trong tập tin, không dựa trên một công cụ quá thông minh như vim :-)
Sử dụng:
od -xcb input_file_name | less
và kiểm tra dòng kết thúc chính mình.
... Làm thế nào chính xác là nó không đáng tin cậy? –
@ignacio Điều gì b vbp nói. Nghĩa là, tôi muốn có thể tìm thấy thuộc tính của tệp chứ không phải tệp có chứa – denormalizer
Nhưng đó không phải là thuộc tính của tệp, đó là tệp chứa. –