Накопилось у меня скриптов для sed, и решил я переписать их на чем-нибудь еще. Тем более на работе коллеги стали пытаться это дело использовать, но у них Виндуза, и не все работает. Так что, все равно править.
Я не программист, только регулярные выражения освоил. Но сегодня поглядел на Ruby - вроде не сильно страшно.
Вобщем, родил/скопипастил такую конструкцию, как аналог 's/before/after/g':
ARGF.each do |line|
line.gsub!( /before/, 'after' )
puts line
end
Сразу возникает вопрос - насколько это грамотно, и можно ли лучше?
Далее, есть такой пример:
echo '( ( ( ( () ))) )' | sed 's/( *)//g'
Что бы убрать все скобки таким паттерном , нужно повторить sed несколько раз.
Но можно использовать t:
echo '( ( ( ( () ))) )' | sed ':a;s/( *)//g;ta'
и все убирается за один раз.
Как такую же фичу продублировать на Ruby?