LINUX.ORG.RU

Как изменить значение в файле на perl


0

0

Есть файл в котором необходимо заменить все встречающиеся значения Например gh101(заменить на gh99), ... gh102(заменить на gh100), ... gh103(заменить на gh101),

Написал примерно такой код а как дальше не знаю

open FD,"<test"; $begin=101; $prebegin=0; foreach(<FD>) { if (/gh$begin/) { $prebegin=$begin-2; s/$begin/$prebegin/; $begin++; } } close FD;

anonymous

#!/usr/bin/perl

$_=qq~
1
2
3
4
5
6
7
8
9
~;

s!(\d+?)!$1-2!gexs;

print $_;

т.е. я бы сделал так:

perl -i -n -p -e 's!(\d+?)!$1-2!gexs' copy_file.ext

перед этим сделав копию файла.

vilfred ☆☆
()
Ответ на: комментарий от vilfred

> перед этим сделав копию файла.
Копия с расширением `.orig' делается путем perl -i.orig ...

murla
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.