Войти

Показать полную графическую версию : [решено] Помогите создать скрипт удаления лишних строк


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

Iska
24-03-2016, 04:01
текстовый файл »
— это документ Microsoft Word, надо полагать?

namin78
24-03-2016, 05:10
— это документ Microsoft Word, надо полагать? »
Нет, текстовый файл с расширением txt.
Вот маленький кусочек файла тык (https://yadi.sk/i/GyMiBPO-qRq9c).

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

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

Foreigner
24-03-2016, 08:55
Четвертый пункт сомнительный (возможен неправильный результат), 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
Четвертый пункт не сработал , г. не удалился. и цифры не удалились. Как было 5 5 2 так и осталось

greg zakharov
24-03-2016, 10:18
namin78, в том куске текста, что был представлен, вычистить мусорные строки можно так (PS v2):gc .\bar | ? {$_ -match '\w{3}'}

namin78
24-03-2016, 16:04
вычистить мусорные строки можно так »
А как сделать что-бы вывод в файлик, а не на экран?

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




© OSzone.net 2001-2012