2015-12-15 3 views
-2

У меня есть файл .txt, в котором много строк. У меня есть процедура для заполнения базы данных, используя этот текстовый файл. Но я хочу только вставить строки, где строка из позиции 67 to 70 соответствует 772. Я не могу изменить процедуру для чтения файла, мне нужно изменить сам файл.Удаление строк из txt-файла, где строка не соответствует строке

На самом деле, я хочу удалить все строки из txt-файла, где строка в позиции 67 to 70, не соответствует 772.

Как это сделать?

+4

Подсказка: '. {67}' будет соответствовать чему-либо для 67 символов. Что ты уже испробовал? Используйте этот сайт, например http://regexr.com/, чтобы попробовать это. –

+3

Вы уже определились, где вы хотите запустить это регулярное выражение? Инструмент или язык программирования? И вам не понадобится магия регулярных выражений, если вам просто нужно сравнить два символа в фиксированном месте. – Marged

+0

Я честно ничего не пробовал. Потому что я просто не знаю, как начать с этого. Поэтому я также не знаю, где мне нужно запустить регулярное выражение. Что-то легко доступное, я полагаю? Я вручную отредактировал один из моих файлов, где я держал 70 строк из 13000, что заняло у меня много времени. – Walle

ответ

4

Ниже регулярное выражение соответствует этой строки из положения 67 до 70:

^.{66}772.*$

Существуют различные способы удаления строк на основе этого регулярного выражения, такие как использование grep с -v флагом. Это зависит от используемого вами инструмента.

+0

Я пробовал это в командной строке в Windows: type test.txt | findstr/x ^. {66} 772. * $, но это ничего не значит. Я тоже старался с 65 и 67, а с «772», но не мои попытки выдавали что-то. Может быть, командная строка в Windows не самая лучшая вещь для использования? – Walle

+1

Я бы не использовал findstr, либо я бы загрузил 'grep' для Windows или использовал Powershell. Я получил его для работы в Powershell следующим образом: 'Select-String -n" ^. {66} 772. * $ ". \ Input.txt' ' -n' инвертирует матч. Подробнее здесь: https://communary.wordpress.com/2014/11/10/grep-the-powershell-way/ – steinar

+0

Спасибо за ответ, но если я попытаюсь использовать ваше решение в Powershell, он все равно вернет все строки , а не те, которые мне нужны. – Walle

Смежные вопросы