I have a file which looks like this (myfile.txt):
{"total":25,"p":1,"ps":100,"paging":{"pageIndex":1,"pageSize":100,"total":25},"issues":[{Lorem Ipsum is simply dummy text of},
{the printing and typesetting industry. Lorem Ipsum has been the industry's},
{standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a},
{type specimen book.}
I want to cut these text:
{"total":25,"p":1,"ps":100,"paging":{"pageIndex":1,"pageSize":100,"total":25},"issues":[
I may use 2 methods here (any method is possible).
- I have to remove the line start with
{"total"
and end with"issues":[
(( including{"total"
and"issues":["
)) - I have to remove the all text before
"issues":[
text ((including"issues":[
))
then output would be
{Lorem Ipsum is simply dummy text of},
{the printing and typesetting industry. Lorem Ipsum has been the industry's},
{standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a}
{type specimen book.}
I tried this
cat myfile.txt | sed 's/{"total"//g' | sed 's/"issues":[//g'
but it occurs errors.
Can someone help me to figure out this?
CodePudding user response:
Using sed
$ sed 's/^{"total[^[]*\[//' input_file
{Lorem Ipsum is simply dummy text of},
{the printing and typesetting industry. Lorem Ipsum has been the industry's},
{standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a},
{type specimen book.}
CodePudding user response:
You can use operator s///
of sed for this:
sed -i 's/{"total.*issues":\[\(.*\)/\1/' t.txt
{"total
: pattern starts with that.*
: anything between the beginning and end of patternissues":\[
: the end of the pattern\(.*\)
: everything else in the rest of the line\1
: replaced by the content between parenthesis