1

У меня есть текстовый файл file1.txt в Unix. Я хотел бы создать другой файл file2.txt , в котором я изменяю все группы строк, которые имеют этот формат (взят из экзамена с несколькими вариантами ответов)

a. [first choice]
b. [second choice]
c. [third choice]

в

[first choice] [second choice] [third choice]

Как я мог это сделать?

РЕДАКТИРОВАТЬ: пример

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

Это должно быть преобразовано в

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    

1 ответ1

2

Предполагая, что это всегда 3 варианта, a. b. и c. , попробуй это:

sed '/^[a-c]\. /{N;N;s/[a-c]\. / /g;s/[\r\n]//g;s/^ //}' file1.txt > file2.txt

Это работает, собирая три строки за раз, используя команду N , подставляя пробел для всех a. b. и c. вхождений, удаляя все концы строки и, наконец, удаляя последний оставшийся лишний пробел в начале строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .