linux - get a variable inside and/or outside a tuple using sed or perl -
input file:
{custom:{ver:120,name:hello,form:123},name:world,browser:ie} {custom:{ver:130,name:test,form:123},browser:ie}
sed command:
sed 's/^.*name:\([^,]*\).*$/\1/' input.txt
output :
world test
how differentiate variable within tuple , outside tuple?
expected output value of name
within custom
:
sed command within custom name
hello test
sed command outside custom name:
world blank or {custom:{ver:130,name:test,form:123},browser:ie}
note: name
can appear anywhere in file--beginning, middle or end--or can absent.
perl work me. give thanks you.
name within custom using rather unsophisticated regex:
perl -lne 'print /custom:\{[^{}]*name:([^,}]*)/ ? $1 : ""' input.txt
outputs:
hello test
name outside custom:
perl -lne 'print /custom:\{[^{}]*\}(*skip)(*fail)|name:([^,}]*)/ ? $1 : ""' input.txt
outputs:
world
switches:
-l
: enable line ending processing -n
: creates while(<>){...}
loop each “line” in input file. -e
: tells perl
execute code on command line. linux perl shell sed
No comments:
Post a Comment