DenchikK
05-04-2020, 12:10
Как можно осуществить такую задачу:
Имеется текстовый файл, нужно найти определённое имя в строчке и скопировать всю эту найденную строчку и всю строчку ниже в другой файл. И так для всех вхождений в исходном файле.
Сейчас делаю очень тупо:
Для каждого нужного имени копирую исходный файл во временные файлы. К примеру, если надо найти 3 имени: dmitry, alexy, sergy то копирую исходный файл 3 раза. И в каждом удаляю всё, кроме нужного - в temp_dmitry, например, остаются строчки с вхождением dmitry и следующей строчки за ней. Потом эти файлы соединяю. Тупо, но как по другому осуществить задуманное, я понять не могу.
Удаляю всё, кроме нужного так:
@echo off
set filename=temp_dmity.txt
ECHO Удаление всего, кроме
sed.exe -i "/dmitry/,+1!d" %filename%
И вдогонку по этой же теме.
sed.exe -i "/dmitry/,+1!d" %filename% - эта команда для нахождения вхождения dmitry и 1 строчки ПОСЛЕ. А как, например, сделать, чтоб находилось вхождение и строчка ПЕРЕД? Пробовал вместо +1 писать -1 - не вышло.
Имеется текстовый файл, нужно найти определённое имя в строчке и скопировать всю эту найденную строчку и всю строчку ниже в другой файл. И так для всех вхождений в исходном файле.
Сейчас делаю очень тупо:
Для каждого нужного имени копирую исходный файл во временные файлы. К примеру, если надо найти 3 имени: dmitry, alexy, sergy то копирую исходный файл 3 раза. И в каждом удаляю всё, кроме нужного - в temp_dmitry, например, остаются строчки с вхождением dmitry и следующей строчки за ней. Потом эти файлы соединяю. Тупо, но как по другому осуществить задуманное, я понять не могу.
Удаляю всё, кроме нужного так:
@echo off
set filename=temp_dmity.txt
ECHO Удаление всего, кроме
sed.exe -i "/dmitry/,+1!d" %filename%
И вдогонку по этой же теме.
sed.exe -i "/dmitry/,+1!d" %filename% - эта команда для нахождения вхождения dmitry и 1 строчки ПОСЛЕ. А как, например, сделать, чтоб находилось вхождение и строчка ПЕРЕД? Пробовал вместо +1 писать -1 - не вышло.