Write an awk script named extract.awk to extract a portion of the input file(s)
ID: 3602676 • Letter: W
Question
Write an awk script named extract.awk 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 1s the one we want Not this one Nor this one user]$ extract.awk test0.txt This is the one we want [userl$ cat test1.txt gnore 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 1ate so do not display 1t START FROM HERE Only the first occurrence matters so NEXTLINE None of this will be displayed either user]$ extract.awk test1.txt This should be displayedExplanation / Answer
Please find the bash script code below:
#! /bin/bash
flag1=0
flag2=0
#Read the file line by line
while IFS= read -r line
do
if [ "$line" == "START FROM HERE" ]
then
flag1=1
elif [ "$line" == "NEXTLINE" ] && [ $flag1 -eq 1 ]
then
flag2=1
elif [ $flag2 -eq 1 ]
then
echo "$line"
break
fi
done <"$1"
Input/Output:
# cat test0.txt
Ignore
NEXTLINE
Ignore
gnore
START FROM HERE
Ignore
NEXTLINE
Hello to be displayed
NEXTLINE
This is not to be displayed
# ./extract.awk test0.txt
Hello to be displayed
Related Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.