2014-11-14 3 views
-2

Предложение - это период, заканчивающийся периодом (.), восклицательным знаком (!) или вопросом (?). Я попыталсяПерерыв текста в предложениях с использованием bash

tr '\n' ' ' < input | sed -e 's/[.] \s*/. \\n/g' 

Я вижу \n добавил в моем файле, но линия не очень сокрушит там.

Я использую версию bash 3.2 для Mac OS X Mavericks.

ответ

0

Посмотрите, работает ли это. ('\ 012' - это новый символ строки, который понимает команда tr, вы заменяете его пробелом, а затем, наконец, используете sed для «захвата» либо полной остановки/точки., Восклицания!, Либо символа вопроса? (а), и что любой персонаж будет доступен \ 1 и после того, что вы хотите \ п новая линия для SED. SED пограничного характера, которые я использовал в следующем примере #.

tr '\012' ' ' < someInputFile.txt | sed "s#\([\.\?\!]\)#\1\n#g" 
+0

Это не работает я, наконец, нашел решение - благодаря google. Мне пришлось вложить сложный ввод в середине предложений sed: sed//.?!]/* \ /g 'input.txt> .txt – Shanthi

+0

Вы использовали «или» в sed. –