Làm cách nào để tìm tập tin chứa dòng mới trong tên tệp?


10

Tôi đang cố gắng tìm các tập tin có một dòng mới trong tên tệp. Nhưng tôi không thể tìm ra mô hình để sử dụng.

Các công việc sau đây, nhưng không hữu ích nếu tôi muốn sử dụng nó trong mã thụt lề.

find . -name '*
*'

Tôi đã thử hai cái này và chúng chỉ thành công trong việc tìm tên tập tin có chứa chữ n :

find . -name '*\n*'
find . -name "*\n*"

Sau đó, tôi tìm thấy cách viết các chuỗi thoát dấu gạch chéo ngược và thử điều này:

find . -name "*$'\n'*"

Nhưng điều đó không tìm thấy gì cả. Tôi nên viết mẫu như thế nào?

Câu trả lời:


13

Trong kịch bản shell, mọi thứ là một chuỗi. Bạn làm cần phải trích dẫn *để ngăn chặn sự bành trướng filename , nhưng bạn không muốn đặt trình tự backslash thoát bên trong dấu ngoặc kép.

Bạn chỉ có thể nối các chuỗi bằng cách đặt chúng ngay sau nhau.

find . -name '*'$'\n''*'

Nhưng để dễ đọc hơn, bạn có thể sử dụng Báo giá ANSI-C cho toàn bộ chuỗi.

find . -name $'*\n*'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.