How to extract part of a line with sed
Say you have a file with lots of data but you really just want to find a couple of lines that matches something and then
you want to extract another part of that line to a list. grep
and sed
can help you. So for example to match on
the new paris
and extract the number 19 from manif_id="19"
on the same line you could do:
grep 'the new paris' china_books.xml | sed -n 's/.*manif_if=\"\([0-9]*\).*/\1/p'
The parentheses - \([0-9]\)
- in the regexp part of the sed command captures what is inside and makes it available to the \1
parameter in the second part. Note that parentheses needs to be escaped!
Also about to finish a great book. The last day of new paris by China Mieville. All about paris and surrealist manifestations. Recommended!