수백만 줄의 텍스트 파일이 있습니다. 문자열을 포함하여 문자열 앞의 모든 텍스트를 제거하고 싶습니다 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 플랫폼에 관한 것이라는 것을 알지 못했습니다. 그러나 여러 가지 방법으로 설치할 수 있는 Windows용 sed도 있습니다.
https://stackoverflow.com/questions/127318/is-there-any-sed-like-utility-for-cmd-exe