반응형
배치 파일을 통해 txt 파일의 특정 줄 삭제
생성 된 txt 파일이 있습니다. 이 파일에는 불필요하며 제거해야하는 특정 줄이 있습니다. 제거해야하는 각 줄에는 줄에 두 문자열 중 하나가 있습니다. "오류"또는 "참조". 이러한 토큰은 줄의 아무 곳에 나 나타날 수 있습니다. 다른 모든 줄을 유지하면서이 줄을 삭제하고 싶습니다.
따라서 txt 파일이 다음과 같은 경우 :
좋은 데이터 라인 C : \ Directory \ ERROR \ myFile.dll의 잘못된 줄 또 다른 좋은 데이터 라인 잘못된 줄 : REFERENCE 좋은 라인
파일이 다음과 같이 끝나기를 바랍니다.
좋은 데이터 라인 또 다른 좋은 데이터 라인 좋은 라인
TIA.
다음을 사용하십시오.
type file.txt | findstr /v ERROR | findstr /v REFERENCE
이는 sed / awk / perl 등을 찾아서 설치하는 대신 Windows OS에서 표준 도구를 사용하는 이점이 있습니다.
작동중인 다음 기록을 참조하십시오.
C : \> file.txt 유형 좋은 데이터 라인 C : \ Directory \ ERROR \ myFile.dll의 잘못된 줄 또 다른 좋은 데이터 라인 잘못된 줄 : REFERENCE 좋은 라인 C : \> file.txt 유형 | findstr / v 오류 | findstr / v 참조 좋은 데이터 라인 또 다른 좋은 데이터 라인 좋은 라인
findstr 만 사용하여 @paxdiablo와 동일한 솔루션을 수행 할 수 있습니다. 여러 명령을 함께 파이프 할 필요가 없습니다.
findstr /V "ERROR REFERENCE" infile.txt > outfile.txt
작동 방식에 대한 세부 정보 :
- / v 검색 문자열과 일치하지 않는 줄을 찾습니다 (@paxdiablo에서 사용하는 것과 동일한 스위치).
- 검색 문자열이 따옴표로 묶인 경우 각 단어를 사용하여 OR 검색을 수행합니다 (구분자는 공백 임).
- findstr은 입력 파일을받을 수 있으며 "type"명령을 사용하여 텍스트를 공급할 필요가 없습니다.
- "> outfile.txt"는 결과를 콘솔에 인쇄하는 대신 outfile.txt 파일로 보냅니다. (존재하는 경우 파일을 덮어 씁니다. 추가하려면 ">> outfile.txt"를 대신 사용하십시오.)
- / i 스위치를 추가하여 대 / 소문자를 구분하지 않는 일치를 수행 할 수도 있습니다.
sed 한 경우 :
sed -e '/ REFERENCE / d'-e '/ ERROR / d'[파일 이름]
여기서 FILENAME은 좋은 줄과 나쁜 줄이있는 텍스트 파일의 이름입니다.
Perl이 설치되어 있으면 perl -i -n -e"print unless m{(ERROR|REFERENCE)}"
트릭을 수행해야합니다.
참고 URL : https://stackoverflow.com/questions/418916/delete-certain-lines-in-a-txt-file-via-a-batch-file
반응형
'Development Tip' 카테고리의 다른 글
Docker : 컨테이너가 계속 다시 시작됨 (0) | 2020.11.10 |
---|---|
rails db : migrate 대 rake db : migrate (0) | 2020.11.10 |
div 내부에 이미지를 세로로 중앙에 배치하는 방법 (0) | 2020.11.10 |
파이썬에서 문자가 대문자인지 확인하는 방법은 무엇입니까? (0) | 2020.11.10 |
Rails 마이그레이션에서 한 열을 다른 열의 값으로 업데이트 (0) | 2020.11.10 |