정규식 : "도움말"등을 포함하는 줄을 제거하십시오


371

명령에 대한 긴 문서가 있습니다. 메모장 ++ 또는 정규식을 사용하여 keyboard_help 등을 포함하여 "help"가 포함 된 모든 줄을 삭제하고 싶습니다.

어떻게 할 수 있습니까?

답변:


945

이것은 메모장 ++에서도 가능합니다.

  • 검색 메뉴 Ctrl+로 이동 F하여 마크 탭을 엽니 다 .
  • 책갈피 줄을 확인하십시오 ( 현재 버전으로 마크 탭 업데이트 가없는 경우 ).

  • 검색어를 입력하고 모두 표시를 클릭하십시오

    • 검색어가 포함 된 모든 줄에 책갈피가 지정됩니다.
  • 이제 검색북마크북마크 된 줄 제거 메뉴로 이동 하십시오.

  • 끝난.


36
네! 또한 grep과 같은 '표시되지 않은 줄 제거'가 있습니다.
클로이

6
고마워, 이것은 깔끔한 트릭입니다. 차라리 유닉스 콘솔을 시작하고 (Windows를 주로 사용한다는 것을 무시하고) cd복잡한 명령을 입력 하는 것보다 간단한 몇 번의 클릭만으로 끝내고 싶습니다. 백업이 없습니다). [ 나를 잘못하지 마라, 나는 다른 것들을 위해 항상 콘솔 명령을 사용하지만, 이와 같은 것을 위해 그것은 과잉 일 뿐이다.]
ADTC

2
방금 시간을 많이 절약했습니다 :-)
Brlja

3
검사는 BOOKMARK LINE그렇지 않으면 작동하지 않습니다 여기에 중요하다!
HaSeeB MiR

1
@AndrewSchultz, 죄송합니다.
stema

187

메모장 ++에서이를 수행하는 또 다른 방법은 찾기 / 바꾸기 대화 상자와 정규식을 사용하는 것입니다.

  • Ctrl+ h찾기 바꾸기 대화 상자를 불러옵니다.

  • 에서 Find what:: 텍스트 상자에 정규식을 포함 .*help.*\r?\n합니다 (이 \r파일이 윈도우 라인 엔딩이없는 경우 선택 사항입니다).

  • Replace with:텍스트 상자를 비워 두십시오 .

  • 검색 모드 영역의 정규식 단일 선택 단추가 선택되어 있는지 확인하십시오. 그런 다음 클릭 Replace All하고 짜잔! 검색어 help가 포함 된 모든 줄 이 삭제되었습니다.

N ++의 사용법 줄 바꾸기


17
"파일에서 찾기"에 대해 수행 할 수 있기 때문에 마크 탭을 사용하는 것보다 나은 답변
Alex

2
백 슬래시가있는 괄호와 같은 특수 문자를 피하십시오.
Noumenon

4
".와 일치하는 줄 바꿈"을 선택 해제하십시오.
MagTun

1
더 높은 성능으로 인해 더 나은 답변. > 1 백만 줄의 파일을 사용하면 책갈피 방식이 최신 기계에서도 최대로 확장됩니다.
Roland Ettinger

17

쉬운 작업 grep:

grep -v help filename

추가]은 > newFileName새 파일로 출력을 리디렉션합니다.


최신 정보

명확히하기 위해 정상적인 동작은 화면에 선을 인쇄하는 것입니다. 파일로 파이프하기 위해 >사용할 수 있습니다. 따라서이 명령에서

grep -v help filename > newFileName
  1. grepgrep분명히 프로그램을 호출
  2. -v출력을 반전시키는 플래그입니다. defaulf에 의해 grep주어진 패턴과 일치하는 선을 인쇄합니다. 이 플래그를 사용 하면 패턴과 일치 하지 않는 행을 인쇄합니다 .
  3. help 일치하는 패턴입니다
  4. filename 입력 파일의 이름입니다
  5. > 출력을 다음 항목으로 리디렉션
  6. newFileName 출력이 저장 될 새 파일

알다시피 파일의 내용은 삭제되지 않습니다. grep그것을 읽고 다른 파일이 저장되고 그에 따라 수정됩니다.


@ 케빈 듀크 : 아아! 아마도 grep설치 하지 않았 음을 의미합니다 . 어쨌든 GNU grep을 설치하는 것이 좋습니다. 확실히 Windows에서 작동하며 실제로 유용한 도구입니다.
sidyll

@sidyll grep이 무엇인지 알았고 많은 출력을했습니다. 출력 파일을 지정하지 않았기 때문일 수 있습니다.
레몬

2
@ 케빈 듀크 (Kevin Duke) : 앞서 답변에서 말했듯이 출력을 리디렉션 할 수 있습니다. 표준 동작은 화면에 인쇄됩니다. 리디렉션하려면 파이프 ( >이 경우) 를 사용하여grep -v help filename > outputFileName
sidyll

고마워, 나는 이것을 시도 할 것입니다!
레몬

grep> sed 시퀀스의 문자 찾기
kwikness

13

sed를 사용 하여이 작업을 수행 할 수 있습니다. sed '/help/ d' < inputFile > outputFile


4
@CengizFrostclaw : Linux / Mac / Whatever의 명령 행에서. Windows를 사용하는 경우 CygWin과 같은 것을 설치하고 사용해야합니다.
Tikhon Jelvis

감사합니다 @TikhonJelvis! 마지막 질문 하나, 도움으로 시작하는 모든 줄을 삭제하기 위해 'help /'를 sed 할 수 있습니까?
jeff

3
@CengizFrostclaw : sed '/^help/ d'작동해야 한다고 생각 합니다. 는 ^라인의 시작을 나타냅니다.
Tikhon Jelvis

@jeff PowerShell의 기능 sedgrep
Ooker

cygwin은 utf-16 파일이있는 창에서 작동하지 않을 수 있습니다. Cygwin 유틸리티는 기본적으로 UFT-8을 사용합니다. UTF-16을 지원하는 것은 거의 없습니다. babun babun.github.io를 사용하십시오 . 그것은 cygwin의 래퍼 역할을하지만 상자에서 많은 것들을 제공합니다.
Sahil Singh


6

이 경우 Windows에서 시도 findstr. 타사 도구는 필요하지 않습니다.

findstr /V /L "searchstring" inputfile.txt > outputfile.txt

정규식도 지원합니다! 도구의 도움말을 읽으십시오 findstr /?.

PS 당신이 큰 작업 할 경우 거대한 (4백메가바이트 로그 파일 등) 파일은 텍스트 편집기 사람이 이미 지적했듯이, 명령 줄 도구가 이동하는 방법, 그래서 매우 메모리 효율적이지 않습니다. 그러나 Windows에는 grep이 없으므로 ...

방금 1GB 로그 파일에서 이것을 실행했으며 문자 그대로 3 초가 걸렸습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.