приложение или сценарий пакетного файла для удаления специальных символов из текста - PullRequest
2 голосов
/ 31 марта 2011

Мне нравится этот онлайн-инструмент http://textmechanic.co/, но в нем отсутствует другая важная функция, которая заключается в удалении специальных символов, таких как%,%, [,), *,?, 'И т. Д., За исключением _, - , а также . из большого количества текста.

Я ищу онлайн-инструмент, небольшую утилиту для Windows или пакетный скрипт, который может это сделать.

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

Я думаю sed - самый простой выбор здесь. Вы можете скачать его для Windows здесь Более того, почти каждый текстовый редактор должен это разрешать (но большинство из них не справляются с файлами в диапазоне нескольких ГиБ).

С sed вы, вероятно, захотите что-то вроде этого:

sed "s/[^a-zA-Z0-9_.-]//g" file.txt

Аналогичным образом, если у вас установлена ​​более поздняя версия Windows (т.е. Windows 7), то PowerShell поставляется с предустановленной. Следующая однострочник сделает это за вас:

Get-Content file.txt | foreach { $_ -replace '[^\w\d_.-]' } | Out-File -Encoding UTF8 file.new.txt

Это можно легко адаптировать для нескольких файлов. Возможно, вы также можете снова вывести в исходный файл, поскольку я думаю, что Get-Content дает массив, а не перечислитель (то есть этот конвейер не может работать с файлом, когда вы его читаете). Подобная проблема из-за очень больших файлов.

1 голос
/ 31 марта 2011

Вы можете сделать регулярное выражение с любым инструментом / языком, который его поддерживает.Вот команда Ruby для Windows

C:\work>ruby -ne 'print $_.gsub(/[%)?\[\]*]/,"")' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...