2013-12-04 6 views
1

У меня есть файл, который выглядит следующим образом:Найти и заменить отформатированную строку в Perl

Myfile

Hello  World 
Hello  World 
Hello  World 
Hello 
Hello 
Hello  World 
Hello  World 

То, что я хочу сделать, это находка и заменить любой строки в файле, имеет только слово «Hello» со строкой «Hello World», сохраняя расстояние так же, как и то, что уже находится в файле (скажем, ширина 10 символов от H до W).

То, что я до сих пор:

perl -pi -e 's/Hello/Hello World/' myFile 

Я знаю, что я не уедешь, но я погуглить это в течение достаточно долгого времени и не могу понять, что мне нужно сделать ..

Любая помощь очень признательна! Благодаря!!

+0

Я думаю, что я должен сказать, что я это делаю в Perl-скрипт ... – Rebulah

ответ

1

Вы должны указать, что строка заканчивается после «Hello»:

perl -pi -e 's/Hello$/Hello   World/' myFile 
3
perl -i -pe '$t=$1 and next if /Hello(\s+)World/; s/Hello\K/${t}World/' myFile 
Смежные вопросы