I have a text file file1.txt
on Unix. I'd like to produce another file file2.txt
, in which I change all groups of lines that has this format (taken from a multiple-choice exam)
a. [first choice]
b. [second choice]
c. [third choice]
to
[first choice] [second choice] [third choice]
How could I do that?
EDIT: An example is
What is the value of three plus five?
a. six
b. seven
c. eight
This line is not so relevant.
blah blah
What is the capital of England?
a. London
b. Birmingham
c. New York
It should be converted to
What is the value of three plus five?
six seven eight
This line is not so relevant.
blah blah
What is the capital of England?
London Birmingham New York
Answer
Assuming it's always 3 choices, a.
, b.
and c.
, try this:
sed '/^[a-c]\. /{N;N;s/[a-c]\. / /g;s/[\r\n]//g;s/^ //}' file1.txt > file2.txt
This works by grabbing up three lines at a time using the N
command, substituting a space for all the a.
, b.
and c.
occurrences, deleting all the line ends and, finally, deleting the last remaining extra space at the beginning of the line.
No comments:
Post a Comment