Впервые я использовал sed для выполнения таких сложных замен. У меня ушло около 2 часов, чтобы придумать что-нибудь: D
Я использовал GNU sed
, так как мне не удавалось работать с ветвями на моем mac в одной строке.
Вот входной контент, который я использовал для тестирования:
The dog chased after a ball
that was thrown by its owner.
The ball
travelled quite far.
I took me a while to fix this file.
And now it's
working :)
Тогда вот командная строка sed
, которую я придумал:
$ sed -n '/^$/!bstore;/^$/N;s/\n\([a-z]\)/ \1/;tmerge;h;d;:store;H;b;:merge;H;g;s/\n \([a-z]\)/ \1/;p;s/.*//g;h;d' sentences.txt
А вот и вывод:
$ sed -n '/^$/!bstore;/^$/N;s/\n\([a-z]\)/ \1/;tmerge;h;d;:store;H;b;:merge;H;g;s/\n \([a-z]\)/ \1/;p;s/.*//g;h;d' sentences.txt
The dog chased after a ball that was thrown by its owner.
The ball travelled quite far.
I took me a while to fix this file.
And now it's working :)
Вы можете заметить, что в самом начале вставлена пустая строка, но я думаю, что с этим можно жить. Пожалуйста, ребята, прокомментируйте это, если вы овладеваете sed
, так как это просто новичок.