У меня есть текстовый файл, в котором миллионы строк. Я хочу удалить весь текст перед строкой, 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
Вот ваша команда:
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/есть-ли-sed-подобная-утилита-для-cmd-exe