2016-02-20 1 views
1

У меня есть текстовый файл с фиксированной длиной данных.Удалите определенные строки в txt-файле через командный файл на основе значения позиции столбца

1234|test1|2015|Who are you 
4567|test2||I'm a dumb guy 
1234|test1|2015|We all know 

мне просто нужно удалить строку 2, проверяя, если значение позиции 12 <> 2 (текущий год, так что не всегда будет 2 для всех строк до 2099 :)), а затем удалите эту строку. Другими словами, просто введите строки, которые содержат значение 2 в позиции 12.

Я попытался найти и найти это, но я не знаю, как переписать для поиска position = value.

тип file.txt | findstr/v ОШИБКА | Findstr/об ССЫЛКА

Delete certain lines in a txt file via a batch file

спасибо ..

ответ

3
findstr /r "...........2" "Data.txt" 

См findstr /? помощи. Также help.

Перенаправить вывод в файл.

findstr /r "...........2" "c:\folder\Data.txt" > "c:\folder\Output.txt" 

См Trouble with renaming folders and sub folders using Batch для пунктуации помощи.

+0

Не будет ли это '/ v/r'? – SomethingDark

+1

Он хочет сохранить 2nnn, не потерять 2nnn. Это лучше '^ ........... 2 [0-9] [0-9] [0-9]' –

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