Write an sed script named extract.sed to extract a portion of the input file(s)
ID: 3606643 • Letter: W
Question
Write an sed script named extract.sed to extract a portion of the input file(s) as follows. Somewhere after
a line containing exactly the text “START FROM HERE”, find the first line containing exactly the text
“NEXTLINE” and display the following line. No other lines should be displayed. If the specific lines are not
present, then the script should display nothing. For example:
[user]$ cat test0.txt
START FROM HERE
NEXTLINE
This is the one we want
Not this one.
Nor this one.
[user]$ extract.sed test0.txt
This is the one we want
[user]$ cat test1.txt
Ignore everything up here
NEXTLINE
Ignore these lines also because we
did not see the first magic line yet.
START FROM HERE
More lines to ignore
NEXTLINE
This should be displayed
This should not
NEXTLINE
This is too late so do not display it
START FROM HERE
Only the first occurrence matters so
NEXTLINE
None of this will be displayed either
[user]$ extract.sed test1.txt
This should be displayed
[user]$ cat test2.txt
1
This file has no magic text
anywhere!
[user]$ extract.sed test2.txt
[user]$
Explanation / Answer
==
sed -n '/START FROM HERE/,${$!{/NEXTLINE/{n;p;q}}}' test2.txt
==
ss139t@ubuntu:~/awk$ sed -n '/START FROM HERE/,${$!{/NEXTLINE/{n;p;q}}}' test0.txt
This is the one we want
ss139t@ubuntu:~/awk$ sed -n '/START FROM HERE/,${$!{/NEXTLINE/{n;p;q}}}' test1.txt
This should be displayed
ss139t@ubuntu:~/awk$ sed -n '/START FROM HERE/,${$!{/NEXTLINE/{n;p;q}}}' test2.txt
ss139t@ubuntu:~/awk$ cat test0.txt
START FROM HERE
NEXTLINE
This is the one we want
Not this one.
Nor this one.
ss139t@ubuntu:~/awk$ cat test1.txt
Ignore everything up here
NEXTLINE
Ignore these lines also because we
did not see the first magic line yet.
START FROM HERE
More lines to ignore
NEXTLINE
This should be displayed
This should not
NEXTLINE
This is too late so do not display it
START FROM HERE
Only the first occurrence matters so
NEXTLINE
None of this will be displayed either
ss139t@ubuntu:~/awk$ cat test2.txt
1
This file has no magic text
anywhere!
ss139t@ubuntu:~/awk$
===
Thanks
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.