История изменений
Исправление Deleted, (текущая версия) :
Это ли не просто обращение к bash?
К sh, если быть точным. Как legacy-костыль, почему бы и нет.
Насчёт перенаправлений. В sh все эти >
, <
, |
заменяют более вменяемые средства комбинирования алгоритмов. Когда приходится вызывать sed или awk только для того, чтобы несколько строк распарсить и потом обратно скомбинировать, понятно, что это нездоровая ситуация. А sed или awk это, на миточку, тоже скриптовые языки. И тоже неполноценные, в результате чего толком ни sh на awk не заменить, ни awk на sh.
Когда в языке есть нормальный процессинг файлов, строк, списков и т.п., то вопрос «как удобно перенаправить поток данных в очередную обёртку» отходит на второй план. Тем более, что можно на коллбеках мелко нашинковать, так что в IO не упирается:
require 'find'
Find.find("/").lazy.select {|p| p.match(/\.txt$/)}.each {|p| puts p}
Выводит *.txt в реальном времени по мере просмотра каталогов.
Исходная версия Deleted, :
Это ли не просто обращение к bash?
К sh, если быть точным. Как legacy-костыль, почему бы и нет.
Насчёт перенаправлений. В sh все эти [include]>[/include], [include]<[/include], [include]|[/include] заменяют более вменяемые средства комбинирования алгоритмов. Когда приходится вызывать sed или awk только для того, чтобы несколько строк распарсить и потом обратно скомбинировать, понятно, что это нездоровая ситуация. А sed или awk это, на миточку, тоже скриптовые языки. И тоже неполноценные, в результате чего толком ни sh на awk не заменить, ни awk на sh.
Когда в языке есть нормальный процессинг файлов, строк, списков и т.п., то вопрос «как удобно перенаправить поток данных в очередную обёртку» отходит на второй план. Тем более, что можно на коллбеках мелко нашинковать, так что в IO не упирается:
require 'find'
Find.find("/").lazy.select {|p| p.match(/\.txt$/)}.each {|p| puts p}
Выводит *.txt в реальном времени по мере просмотра каталогов.