2015-11-09 3 views
0

У меня есть следующий код в Баш:Как искать файл и вставлять строку после совпадения в ruby?

sed \"s/\:root\:/\:root-$(hostname)\:/g\" /etc/passwd 

Это приводит к:

root:x:0:0:root-myhostname.domain.tld:/root:/bin/bash 

Я пытаюсь повторить то же самое поведение в Ruby. Может кто-нибудь, пожалуйста, помогите мне?

+0

Не могли бы вы разместить некоторые образцы содержимого '/ etc/passwd'? – thesecretmaster

ответ

0

Вы могли бы просто использовать gsub:

longString.gsub(stringToFind,stringToFind+stringToAdd) 

Вы также можете просто запустить Баш в рубин, как:

`sed \"s/\:root\:/\:root-$(hostname)\:/g\" /etc/passwd` 

Вы также можете быть заинтересованы в this gem.

+0

Благодарю вас за предложение. Из-за сложности регулярного выражения, которое у меня есть в bash, у меня возникли проблемы с получением правильного синтаксиса с помощью gsub. Не могли бы вы показать мне, как копировать то, что я делаю в bash с ruby ​​gsub? –

+0

Я не очень хорош в этом, но я попробую позже сегодня, когда у меня будет секунда. – thesecretmaster

+0

Если у вас есть регулярное выражение, напишите, что у вас есть. – thesecretmaster

Смежные вопросы