LINUX.ORG.RU

Удалить \t и \n в текстовом файле


0

1

В распознанном тексте много лишних табуляций и переносов строк. Хочу оформить как-нибудь более по-человечески, чтобы удобно было копировать. Самый простой вариант, который пришел мне в голову - заменить \t и \n на пробелы, затем удалить лишние пробелы. Перепробовал кучу вариантов с sed, все время какие-то проблемы. То вообще не работает, то работает с echo, но не работает в самом файле, то после > test в файле test неверная кодировка (при этом в исходном UTF-8, никсовый перенос строк), в общем, замучило x_x. Как это сделать? Желательно в bash.

Deleted

Последнее исправление: Deleted (всего исправлений: 2)

Ответ на: комментарий от gentoo_root

Нашел свой случай. Чтобы заменить \n на пробелы, надо «всего-то»:

cat days.txt | sed ':a;N;$!ba;s/\n/ /g'
sed - это ППЦ, конечно. Но за ссылку спасибо. Думаю, разберусь.

Deleted
()
Ответ на: комментарий от adriano32

Ну, например, для теста:

Прощай, немытая Россия, страна

рабов, страна господ!

Надо заменить \t, \n и \n\n на пробелы, а лишние пробелы - удалить.

Deleted
()
Ответ на: комментарий от Deleted

Табуляции здесь удалил лоровский движок, но они были.

Deleted
()
Ответ на: комментарий от aol

Это здорово, но я, похоже, неправильно сформулировал задачу: надо сначала их заменить на пробелы, а пробелы в количестве, больше или равном 2, заменить на одиночные пробелы, иначе получается «странарабов» вместо «страна рабов».

Deleted
()
Ответ на: комментарий от aol

Это где два или больше пробелов идут подряд. Их надо заменить на одиночные пробелы.

Deleted
()
Ответ на: комментарий от aol

Спасибо, наконец-то заработало!!

маны, маааныыы!!!

Я понимаю, что читать их полезно. Но вот только потратил 2 часа времени в поиске решения банальной задачу, а всякие выкрутасы с `\/\/\/\/\/\/\/\/\/\' все равно не осилил.

Deleted
()
Ответ на: комментарий от Deleted

велкам. а про «\/\/\/» как ты их называешь, надо курить regular expressions. штука полезная, и не такую тривиальщину, как у тебя позволяет решать!

aol ★★★★★
()

когда у меня дома ещё не было интернета, я програму на с написал.

mi_estas
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.