Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите создать скрипт удаления лишних строк (http://forum.oszone.net/showthread.php?t=313051)

namin78 24-03-2016 00:02 2619128

Помогите создать скрипт удаления лишних строк
 
Существует текстовый файл. В нем много мусорных строк содержащих
1 всего один символ(букву) .
2 Только цифры.
3 Два символа вместе или через пробелы
4 Три символа один из которых не относится ни кирилице, ни цифрам, ни к латинице, символы вместе или через пробелы
Эти строки надо удалить. Объясню зачем. После разных распознавалок типа FineReader и CuneiForm в тексте остается много мусора, и ни какие пост-OCR обработчики в автомате такие строки не вычищают.
Заранее благодарен!

Iska 24-03-2016 04:01 2619145

Цитата:

Цитата namin78
текстовый файл »

— это документ Microsoft Word, надо полагать?

namin78 24-03-2016 05:10 2619149

Цитата:

Цитата Iska
— это документ Microsoft Word, надо полагать? »

Нет, текстовый файл с расширением txt.
Вот маленький кусочек файла тык.

Iska 24-03-2016 06:16 2619153

namin78, посмотрел. Там в любом случае нужна будет вычитка и правка «ручками». Иначе такие абзацы как «"пал ьч и ка.», должные превратиться после вычитки в «пальчика», уйдут в небытие.

namin78 24-03-2016 07:41 2619162

Цитата:

Цитата Iska
нужна будет вычитка »

В общем файле, по моим подсчетам, около 7000-10000 мусорных строк. И если можно удалить 5000-8000 тысяч из них, то это очень облегчит чтение. Я не собираюсь причесывать текст "в ноль". Задача, максимально причесать, нажав десяток кнопок.

Foreigner 24-03-2016 08:55 2619183

Четвертый пункт сомнительный (возможен неправильный результат), powershell:
Код:

<#
1 всего один символ(букву) .
2 Только цифры.
3 Два символа вместе или через пробелы
4 Три символа один из которых не относится ни кирилице, ни цифрам,
  ни к латинице, символы вместе или через пробелы
#>

(get-content file.txt) -replace '^(.|\d+|.(\s+)?.|\W\s?.\s?.|.\s?\W\s?.|.\s?.\s?\W)$' |
set-content file.1.txt -encoding default


namin78 24-03-2016 09:23 2619194

Четвертый пункт не сработал
Код:

, г.
не удалился. и цифры не удалились. Как было
Код:

5 5 2
так и осталось

greg zakharov 24-03-2016 10:18 2619217

namin78, в том куске текста, что был представлен, вычистить мусорные строки можно так (PS v2):
Код:

gc .\bar | ? {$_ -match '\w{3}'}

namin78 24-03-2016 16:04 2619384

Цитата:

Цитата greg zakharov
вычистить мусорные строки можно так »

А как сделать что-бы вывод в файлик, а не на экран?

namin78 24-03-2016 18:35 2619446

Foreigner, добавив к вашему коду еще чуть-чуть, я добился желаемого результата. Спасибо.


Время: 22:08.

Время: 22:08.
© OSzone.net 2001-