bash как заменить / удалить начало строки с пробелами - PullRequest
0 голосов
/ 07 октября 2019

Я разбираю длинные тексты, и часть побочных продуктов предыдущих команд: 1) строки с одним пробелом 2) строка с одним пробелом, за которым следует предложение.

Как мне получитьизбавиться от них?

Я пробовал следующее:

tr -s [:space:] |sed -r 's/\^ /\^/g' > output.txt

и следующее

tr -s [:space:] |sed -r 's/\n //g' > output.txt

и следующее

sed 's/\([.!?]\)[[:space:]]*/\1\n/g' file > output.txt

Безуспешно.

Пример ввода (подчеркивания представляют пробелы для лучшего визуального понимания)

_Sir_William_Blackstone,
_
_Commentaries_on_the

Пример ввода

Sir_William_Blackstone,
Commentaries_on_the

1 Ответ

1 голос
/ 07 октября 2019

Я бы использовал sed.

sed -E '/^\s*$/d; s/^\s*//;' < in > out

Это удаляет строки только с пробелами и удаляет пробелы с начала других строк.

cf https://www.gnu.org/software/sed/manual/sed.html

Есть уточнения, но это общая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...