Найти и заменить форматированной строкой в ​​perl

У меня есть файл, который выглядит так:

мой файл

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

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

Любая помощь с благодарностью! Спасибо!!

2 ответа

perl -i -pe '$t=$1 and next if /Hello(\s+)World/; s/Hello\K/${t}World/' myFile

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

perl -pi -e 's/Hello$/Hello          World/' myFile
Другие вопросы по тегам