1

У меня есть текстовый файл, который имеет миллионы строк. Я хочу удалить весь текст перед проверкой строки test: включая строку. Также хочу удалить текст после пробела.

Некоторый контент из файла:

file1:test:src/draw/no/ind/erefe.c/gegegewg 1
filesdsd:test:src/draw/no/ind/reryeryrey.c/jhrtjtrj 1
fileskdk:sdsD:test:abc/disp/no/ind/ryretyrey.txt/Display::Restrict 20

Желаемый результат:

src/draw/no/ind/erefe.c/gegegewg
src/draw/no/ind/reryeryrey.c/jhrtjtrj
abc/disp/no/ind/ryretyrey.txt/Display::Restrict

У меня есть код ниже, который удаляет текст после / из файла, а также строку echo командной строке, поскольку у него есть эхо .

for /f "tokens=1 delims=/" %a in (abc.txt) do (echo %a >> newfile.txt)

Я хочу изменить приведенный выше код, чтобы получить вышеупомянутый желаемый результат. Но без печати строк на cmd это занимает много времени.

1 ответ1

0

Вот ваша команда:

cut -d " " -f1 file.txt | sed -e '1,$s/^\(.*\):test:\(.*\)$/\2/' > new_file.txt

или если вы можете изменить исходный файл:

sed -i '1,$s/^\(.*\):test:\(.*\) .*$/\2/' file.txt

Обновление: я не заметил, что вопрос был для платформы Windows. Однако есть также sed для Windows, который можно установить несколькими способами:

https://stackoverflow.com/questions/127318/is-there-any-sed-like-utility-for-cmd-exe

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .