Ho questo ingresso di linea di comando in Windows:Come posso sfuggire alla barra verticale quando eseguo la riga di comando con Ruby?
dir /b | ruby -ne 'f=$_.chomp;File.read(f).each_line{|line| print f if line =~ /helloworld/};'
Questa linea è quello di trovare tutti i file nella directory corrente con helloworld
in esso. (Capisco che ci sono molti altri modi per fare questo, ma il post non si sta concentrando su quello)
La mia domanda è:
Questa linea dà errore dicendo line is not a valid command
. Poi ho realizzato |
in Ruby come una parentesi graffa per la variabile di blocco è un segno di pipe in cmd. Ho provato a cambiare l'intera linea in doppia citazione e sfuggire al | firmare ma non ha successo. Come posso sfuggire alla barra verticale |?
Si prega di non rispondere ad altri modi per eseguire l'attività, ad esempio utilizzando altri strumenti come grep, find, sed o awk o cambiare il blocco in ciclo for.
Funziona davvero! Ho provato, ma ho provato solo con | scappato da \ ma non l'ho provato senza sfuggire a nulla, e questo si è rivelato sorprendentemente buono. – texasbruce
@texasbruce Felice di sentirlo. Questa è una delle realtà della programmazione: devi anche capire una buona parte del funzionamento del sistema operativo. Se la mia risposta ha risolto il tuo problema, ti preghiamo di prendere in considerazione l'accettazione. – Kelvin