Возвращает (и присваивает $_) следующую строку из списка файлов в ARGV (или $*) или со стандартного ввода, если в командной строке нет файлов
Если вы хотите обработать каждую строку, вы можете использовать флаг -p. Это как обернуть ваш script в блок while gets(); ... end; puts $_. Ruby считывает каждую строку ввода в $_, оценивает ваш script и выводит $_ после:
echo "Foo\nBar\nBaz" | ruby -pe '$_.downcase!'
Вывод:
foo
bar
baz
Ответ 2
Просто
echo "My String" | ruby -ne 'puts $_.downcase'
или
echo "My String" | ruby -e "puts gets.downcase"
Вы получаете идею.
Ответ 3
Примеры:
Удалите все строки из дополнительных пробелов:
ls | ruby -e "STDIN.each_line.to_a.map(&:strip).each(&method(:puts))"