Tiêu đề nói cho chính nó thực sự. Tôi chỉ muốn biết nếu nó tồn tại, không phải nó ở đâu. Có một lớp lót để đạt được điều này?Cách tốt nhất để tìm kiếm một chuỗi trong một tệp là gì?
Trả lời
File.open(filename).grep(/string/)
Thao tác này tải toàn bộ tệp vào bộ nhớ. Nếu bạn đang xử lý các tệp lớn, hãy thích sử dụng chúng.
Điều đó có nghĩa là tải từng dòng một, thay vì toàn bộ tệp.
File.foreach(filename).grep(/string/)
Thực hành tốt để tự dọn dẹp sau khi thay vì để người thu gom rác xử lý nó tại một thời điểm nào đó. Điều này quan trọng hơn nếu chương trình của bạn tồn tại lâu dài và không chỉ là một số kịch bản nhanh. Sử dụng một khối mã đảm bảo rằng đối tượng File
được đóng khi khối kết thúc.
File.foreach(filename) do |file|
file.grep(/string/)
end
Điều này thực sự rò rỉ một bộ mô tả tập tin có thể gây ra một vấn đề nghiêm trọng. Đây là một thay thế sạch hơn sẽ đóng tập tin sau khi nó được sử dụng.'open ('some.txt') {| f | f.grep (/ string /)} ' –
Và cũng dẫn đến tải toàn bộ tệp trong bộ nhớ. 'open (" some.txt ") {| f | f.each_line.detect {| line | /re/.match(line)}} ' – rewritten
-1 vì một số lý do nó trả về false khi nó đúng. Điều tra lý do tại sao. – kgpdeveloper
grep cho foo HOẶC thanh HOẶC baz, bị đánh cắp từ ruby1line.txt.
$ ruby -pe 'next unless $_ =~ /(foo|bar|baz)/' < file.txt
Cũng có vẻ như eed3si9n có lót xuống, đây là giải pháp dài hơn:
f = File.new("file.txt")
text = f.read
if text =~ /string/ then
#relevant code
end
Bạn cần báo giá tên tệp của mình. –
vâng, chỉ cần chú ý khi bạn đăng –
một lớp lót: 'bất cứ điều gì (x) nếu File.read (" file.txt ") = ~/regex /' – rampion
Nếu hệ điều hành của bạn có một gói grep, bạn có thể sử dụng một cuộc gọi hệ thống:
system("grep meow cat_sounds.txt")
Điều này sẽ trả về true nếu grep
trả về bất cứ điều gì, sai nếu không.
Nếu bạn thấy mình trên một hệ thống với grep
, bạn có thể thấy đây là cách "tốt nhất" vì Ruby có thể chậm khi nói đến hoạt động của tệp.
anh ta chưa chỉ định os của mình chưa = \ –
Tôi nghĩ tốt nhất là giả sử anh ta lành mạnh. –
Vui vẻ đủ nó là một rakefile tôi đã tạo ra khi tôi đưa ra câu hỏi này, vì vậy tôi thậm chí có thể tái yếu tố này để sh "grep meow cat_sounds.txt" :-) – ChrisInCambo
này đọc các tập tin chỉ với sự xuất hiện đầu tiên của 'string' và xử lý nó từng dòng - không đọc toàn bộ tập tin cùng một lúc.
def file_contains_regexp?(filename,regexp)
File.foreach(filename) do |line|
return true if line =~ regexp
end
return false
end
- 1. Cách tốt nhất để tìm kiếm GitHub là gì?
- 2. Cách tốt nhất để thực hiện tìm/thay thế trong một số tệp là gì?
- 3. Cách nhanh nhất để tìm kiếm thông qua các chuỗi trong Objective-C là gì?
- 4. Cách tốt nhất để phân tích chuỗi là gì?
- 5. Cách tìm kiếm một chuỗi trong các tệp JAR
- 6. Cách tìm kiếm chuỗi trong một mảng
- 7. Cách tốt nhất để thu gọn các hàng của một SELECT thành một chuỗi là gì?
- 8. Cách tốt nhất để cắt khoảng trắng từ một chuỗi trong Cocoa Touch là gì?
- 9. Cách tốt nhất để tạo biểu mẫu tìm kiếm mô hình là gì?
- 10. Cách tốt nhất để xóa một chuỗi các chuỗi là gì?
- 11. Cách tốt nhất để tăng một điều tra là gì?
- 12. Cách tốt nhất để mã hóa một chuỗi rất ngắn trong PHP là gì?
- 13. Cách tốt nhất để định dạng một chuỗi trong Scala là gì?
- 14. Cách tốt nhất tìm kiếm HashSet
- 15. Cách tốt nhất để tìm mã đang chặn chuỗi chính của bạn là gì?
- 16. Tùy chọn tốt nhất để tìm kiếm trong Ruby on Rails là gì?
- 17. Cách tốt nhất để lọc một tập con của tệp trong src/main/webapp là gì?
- 18. Cách tốt nhất để làm dos2unix trên một tệp dòng 500k, trong Windows là gì?
- 19. Cách tìm kiếm một chuỗi trong chuỗi khác?
- 20. Cách sạch nhất để tìm kiếm một mảng 2D?
- 21. cách tốt nhất để có kích thước tệp là gì?
- 22. Cách tốt nhất để tìm thấy nếu một chuỗi là trong một danh sách (không có Generics)
- 23. Cách tốt nhất để tìm kiếm kiểu dữ liệu Long trong cơ sở dữ liệu Oracle là gì?
- 24. Scala: Tìm kiếm một cách tốt đẹp để tách mảng
- 25. Cách tốt nhất để sử dụng có chứa trong một ArrayList trong Java là gì?
- 26. cách tốt nhất để chuỗi quá tải trên một thuộc tính Moose accessor là gì?
- 27. Cách tốt nhất để lặp qua các dòng của một chuỗi Java là gì?
- 28. Cách tốt nhất để cắt bớt phần đầu của một tập tin trong C là gì?
- 29. Cách tốt nhất để kiểm tra tệp để xem tệp zip của nó là gì?
- 30. Cách tốt nhất để chỉ cho phép một tệp PHP được bao gồm là gì?
xin lỗi, tôi thích câu hỏi của bạn, nhưng, vui lòng đổi tên nó. Tôi đã được nắm bắt trong 'phát hiện 'chức năng đặc biệt (trở về yếu tố đầu tiên, không phải tất cả, uh) – gaussblurinc