Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Hi Folks,
In a File (say F), I want to search first for a string (say A) and then search for (say B). Now i want the lines between A and B to be moved to another file say G.
Can anyone help me on this.
Thanks in advance...
ASB

Extract from sed FAQ
How do I address all the lines between RE1 and RE2, excluding
the lines themselves?Normally, to address the lines between two regular expressions, RE1
and RE2, one would do this: '/RE1/,/RE2/{commands;}'. Excluding
those lines takes an extra step. To put 2 arrows before each line
between RE1 and RE2, except for those lines:sed '1,/RE1/!{ /RE2/,/RE1/!s/^/>>/; }' input.fil
The preceding script, though short, may be difficult to follow. It
also requires that /RE1/ cannot occur on the first line of the
input file. The following script, though it's not a one-liner, is
easier to read and it permits /RE1/ to appear on the first line:/RE1/,/RE2/{
/RE1/b
/RE2/b
s/^/>>/
}A solution to your problem :
sed -n -e '/A/,/B/{
/A/b
/B/b
p
}' F > GThe same thing with awk
awk '/A/,/B/{ if (/A/ || /B/) next; print }' F > G
Jean-Pierre.

![]() |
![]() |
![]() |

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |