Tôi có lệnh này dòng đầu vào trong Windows:Làm cách nào để thoát khỏi thanh dọc khi thực hiện dòng lệnh với Ruby?
dir /b | ruby -ne 'f=$_.chomp;File.read(f).each_line{|line| print f if line =~ /helloworld/};'
Dòng này là để tìm tất cả các file trong thư mục hiện tại với helloworld
trong đó. (Tôi hiểu có rất nhiều cách khác để làm điều này nhưng bài không tập trung vào đó)
Câu hỏi của tôi là:
Dòng này mang lại cho lỗi nói line is not a valid command
. Sau đó, tôi nhận ra |
trong Ruby như một cú đúp cho biến khối là một dấu hiệu đường ống trong cmd. Tôi đã cố gắng để thay đổi toàn bộ dòng vào gấp đôi trích dẫn và thoát khỏi | ký nhưng không thành công. Làm thế nào tôi có thể thoát khỏi thanh dọc |
Vui lòng không trả lời các cách khác để thực hiện tác vụ như sử dụng các công cụ khác như grep, find, sed hoặc awk hoặc thay đổi chặn thành vòng lặp.
Nó thực sự hoạt động! Tôi đã thử, nhưng chỉ thử với | thoát bởi \ nhưng không thử nó mà không thoát khỏi bất cứ điều gì, và điều này hóa ra là đáng ngạc nhiên tốt. – texasbruce
@texasbruce Rất vui khi được nghe. Đó là một trong những thực tế của lập trình - bạn cũng phải hiểu rất nhiều hoạt động của hệ điều hành. Nếu câu trả lời của tôi giải quyết được vấn đề của bạn, hãy xem xét chấp nhận. – Kelvin