Lệnh 'tệp' của Unix có tùy chọn -0 để xuất một ký tự null sau tên tệp. Điều này được cho là tốt cho việc sử dụng với 'cắt'.Làm thế nào để 'cắt' trên null?
Từ man file
:
-0, --print0
Output a null character ‘\0’ after the end of the filename. Nice
to cut(1) the output. This does not affect the separator which is
still printed.
(. Chú ý, trên Linux của tôi, tách '-F' KHÔNG được in - có ý nghĩa hơn đối với tôi)
Làm thế nào bạn có thể sử dụng 'cắt' thế nào để trích xuất một tên tập tin từ đầu ra của 'tập tin'?
Đây là những gì tôi muốn làm:
find . "*" -type f | file -n0iNf - | cut -d<null> -f1
nơi <null>
là ký tự NUL.
Vâng, đó là những gì tôi đang cố gắng làm, những gì tôi muốn làm là lấy tất cả tên tệp từ cây thư mục có loại MIME cụ thể. Tôi sử dụng một grep (không được hiển thị).
Tôi muốn xử lý tất cả các tên tệp hợp pháp và không bị kẹt trên tên tệp có dấu hai chấm, ví dụ: trong tên của chúng. Do đó, NUL sẽ là tuyệt vời.
Tôi đoán các giải pháp không cắt cũng tốt, nhưng tôi không muốn từ bỏ một ý tưởng đơn giản.
Đó là pr chỉ là điều tôi không thử! Cảm ơn! – philcolbourn
@philcolbourn: Bạn được chào đón! – ruakh
Tính năng này không hoạt động. 'cut: bad delimiter' (Mac OS X) – Sukima