2013-05-28 2 views
4

나는 첫 번째 행이 비어있는 수천 개의 텍스트 파일을 가지고있다. 한 번에 모든 파일에서이 행을 삭제할 수 있습니까?여러 파일에서 첫 번째 빈 행을 삭제하는 방법은 무엇입니까?

enter image description here

+0

메모장을 사용하면 ++? – MaVRoSCy

+0

가능한 셸 스크립트 솔루션 - http://stackoverflow.com/questions/11226938/delete-first-line-of-file-if-its-empty 여러 파일에 대해 메모장에서이 작업을 수행하는 것보다 쉽습니다. – DaV

+0

메모장 + +의'파일에서 찾기'옵션을 사용하여 여러 파일에서 바꾸기를 찾을 수는 있지만 첫 번째 빈 줄만 어떻게 매칭 시킬지 모르겠습니다. – Noel

답변

1

는이

@echo off 
for %%i in (*.txt) do (
more +1 "%%~fi">>temp 
del "%%~fi" 
ren temp "%%~nxi" 
) 

저장처럼 something.bat로 위의 코드를 박쥐 스크립트를 필요로하고 디렉토리에서 실행합니다.

+0

이것은 꽤 빠르고 아주 잘 동작합니다. 고맙습니다. – micco

1

이 (버전 6.2.3 테스트) 메모장 ++를 사용하여 작동합니다

\A[\r\n]+

설명 :

\A\Z는 관계없이 항상 전체 파일의 시작과 끝을 일치 여러 줄 설정 중.

참고 :이 정규식은 OP 질문보다 약간 더 일반적입니다. 모든 줄 바꿈 시퀀스 (\r\n, \r 또는 \n)로 끝나는 일련의 연속 초기 공백 행을 제거합니다. 수천 개의 파일을 변경하는 것보다 더 나쁜 것은 나중에 한 쌍이 다른 줄 바꿈 시퀀스를 갖거나 여러 개의 초기 빈 줄이 있음을 알기 위해서입니다.

대안 :

작동하는 또 다른 정규식은 다음과 같습니다

(?<!.)[\r\n]+

설명 :이 부정적인 모습 숨김, (?<!) 사용

확실히 어떤 캐릭터는 존재하지 않는다 CR s 및 LF s 시퀀스 전에 .

참고 :이 작업을 수행하려면 . matches newline 확인란을 선택해야합니다.

관련 문제