私はWindowsでこのコマンドライン入力を持っている:Rubyでコマンドラインを実行するとき、どのように垂直バーからエスケープできますか?
dir /b | ruby -ne 'f=$_.chomp;File.read(f).each_line{|line| print f if line =~ /helloworld/};'
この行はそれでhelloworld
と、現在のディレクトリの下にあるすべてのファイルを見つけることです。
この行はline is not a valid command
を言って、エラーを与える:
私の質問は(私はそこにこれを行うには他の多くの方法があるが、ポストはそれに焦点を当てていない理解します)。その後、ブロック変数のブレースとしてRubyで|
を実現しました。cmdのパイプ記号です。私は行全体を二重引用符に変更しようとしました。サインは成功しません。どうすれば縦棒を逃れることができますか?
grep、find、sed、awkなどの他のツールを使用したり、ブロックをforループに変更したりするなど、他の方法では対応しないでください。
実際に動作します!私は試しましたが、試してみました。 \でエスケープされていますが、エスケープしないと試してみることはできませんでした。 – texasbruce
@texasbruceそれを聞いてうれしい。これはプログラミングの現実の1つです。また、OSの多くの機能を理解する必要があります。私の答えがあなたの問題を解決したら、受け入れを検討してください。 – Kelvin