perl -pe 's/(?=math)/" " x (19-length($`))/e' yourfile
perl -pe 's// / while /.*\K(?=math)/g && 19 > pos' yourfile
Работа
- Параметр Perl
-p
установит неявное чтение файла в цикле построчно. Текущая запись, она же строка, хранится в переменной $_
.
- Цикл
while
выполняет следующие действия:
- a)
/.*\K(?=math)/g
работает с текущей строкой, $_
и regex
ищет позицию , стоит где, только справа может быть строка "математика", а слева что угодно.
- b) В случае успеха регулярного выражения проверяется, что позиция меньше 19. В противном случае выйти из цикла
while
.
- c) Тело цикла
while
добавляет пробел в позиции, определенной в операторе действия цикла while
.
Результаты
1 2 3
123456789012345678901234567890
good math234
how are you math123
1234567890
good math234
try this math500
math101 is enough math
Brisanth
14.05.2016, 00:52
Ссылка