Dear All,
i want to search particular string and want to replance next line value.
following is the test file.
search string is
tmp,???
,10:1 "???" may contain any 3 character it should remain the same and next line replace with ,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
abc,666
,10:1
tmp,111 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
aaa,666
,10:1 -- do not replace as above line is not matching "tmp,???"
,10:1 -- do not replace as above line is not matching "tmp,???"
thank you
awk '/tmp,[0-9][0-9][0-9]/{print;getline;$0=",10:50"}1' file
$
$
$ # show the contents of the data file called "f4"
$
$ cat f4
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
abc,666
,10:1
tmp,111 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
aaa,666
,10:1 -- do not replace as above line is not matching "tmp,???"
,10:1 -- do not replace as above line is not matching "tmp,???"
$
$
$ # run the Perl one-liner that processes the data in the file "f4"
$
$ perl -plne 'if(/^tmp,\d{3}/) {$x=1} elsif($x) {$_=",10:50"; $x=0}' f4
tmp,123 --- if match tmp,??? then replace below line
,10:50
abc,666
,10:1
tmp,111 --- if match tmp,??? then replace below line
,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:50
aaa,666
,10:1 -- do not replace as above line is not matching "tmp,???"
,10:1 -- do not replace as above line is not matching "tmp,???"
$
$
tyler_durden
perl -p0e 's/(tmp,...\n,10:)1/${1}50/g' file