Sublime-특정 값을 포함하는 모든 줄 삭제


116

SublimeText 3에서 열 수있는 900MB 로그 파일이 있습니다.이 파일은 다음과 유사한 줄로 가득 차 있습니다.

10/08/2014 23:45:31:828,Information,,,,ExportManager: ,No records to send and/or not connected

포함하는 모든 줄을 어떻게 필터링 할 수 있습니까? No records to send and/or not connected


아래 솔루션이 작동하는 동안 이러한 유형의 작업은 실제로 대용량 파일의 경우 sed / awk로 수행해야합니다.
Bar

답변:


229

정규식 검색 및 바꾸기를 수행 할 수 있습니다.

찾기> 바꾸기를 클릭합니다.

정규식 단추를 눌렀는지 확인하십시오.

찾을 내용 필드에 다음을 입력하십시오.

^.*No records to send and/or not connected.*\n

바꿀 내용 필드는 비워 둡니다.

모두 바꾸기를 클릭합니다.


16
끝의 마침표 / 마침표가 중요합니다. 그렇지 않으면 작동하지 않습니다. 또는 다음을 사용할 수 있습니다.^.*No records to send and/or not connected\S.*$
Navigatron 2015 년

이 솔루션은 대용량 파일에서 작업하는 경우에만 가능한 솔루션입니다. Ctrl+Shift+K200,000 개 라인을 선택 했을 때 내 컴퓨터가 몇 분 동안 멈췄습니다 .
Przemek D

Imma 내 26000000 라인 파일로 이것을 시도하십시오 : ')
YB 원인

64

정규식을 작성하고 싶지 않은 사람들을 위해 검색 문자열을 선택 ctrl+cmd+g하거나 메뉴에서 "Quick Find All"을 누르 거나 선택하면 일치하는 각 문자열을 선택할 수 있습니다. 거기에서 Home모든 선택 커서를 줄의 시작 부분으로 이동하고 shift+End일치하는 모든 줄을 선택하고 del, del모두 삭제합니다.

다중 커서 편집은 재미 있습니다!


4
이것은 매우 유용하고 일반화 된 팁입니다. 내 목표는 문자열이 포함 된 모든 줄을 삭제하는 것이 었습니다. 결국 하나의 인스턴스를 선택한 다음 Ctrl+Cmd+GLeonid가 모든 문자열을 선택하도록 제안한 바로 가기와 함께 "QuickFind"를 사용했습니다 . 그 후 "Delete Line"으로 바로 이동할 수 Ctrl-Shift-K있으며 외과 적으로이 문자열이있는 모든 라인이 순식간에 제거되었습니다. Sublime Text는 제가 사용 해본 최고의 텍스트 편집기입니다.
MiB

ctrl + cmd + g는 Windows의 ctrl + alt + g와 동일합니까? 작동하지 못했습니다
black panda

@black panda Windows 용 "빠른 찾기"는 alt + f3입니다. Leonid +1
Christopher

당신이 나를 좋아하고 당신이 홈 버튼이없는 경우, 당신은 또한 사용할 수 있습니다 CMD + <- (왼쪽 화살표)
Koray 투 케이

4
cmd + L을 사용하여 선택 영역을 줄로 확장 할 수도 있습니다.
Koray Tugay

53

정규식을 작동시킬 수 없으므로이 답변에서 Alt-F3 접근 방식을 사용했습니다.

/superuser/452189/how-can-i-filter-a-file-for-lines-tained-a-string-in-sublime-text-2/598999#598999

  1. 관심있는 문자열 선택
  2. 히트 Alt+ F3모든 경우에 다 커서 모드로 전환 ( Ctrl+ CMD+ G맥 OS X에 대한)
  3. 히트 Ctrl+ L[코멘트보기] ( Cmd+ LMac에서)
  4. 선택 항목을 다른 버퍼에 복사하여 붙여 넣기
  5. Del

2
두 가지 : (1) 이와 같은 개별 답변에 연결할 수 있습니다. (2) 여기에 다른 답변을 요약해야합니다 (그리고이 질문에 적절하게 답변하도록 전문화해야합니다).
분명한 컴파일러

4
3 단계와 4 단계를로 CTRL + L바꾸면 줄 바꿈을 포함하여 전체 줄로 선택 영역이 확장됩니다.
Chnossos

2
MAC 키 체계에 의해 저주받은 저 같은 사람들 Ctrl+Cmd+G을 위해 : 모든 발생에 대한 다중 커서, Cmd+L줄 확장 및 일반적인 복사 / 붙여 넣기
Cyril Duchon-Doris

27

이것은 내가 Windows 사용자를 위해 찾은 것입니다.

  1. 문자열을 선택하십시오 (이 문자열을 포함하는 모든 행이 제거됩니다).
  2. Alt + F3을 누릅니다.
  3. Ctrl + L을 누릅니다.
  4. Delete 키를 누릅니다.

21

위에서 제안한 정규식 코드 중 어느 것도 제 경우에는 작동하지 않았지만 작동했습니다.

.*(text in question).*

코드에 빈 줄이 표시됩니다. 그렇지 않은 경우 \n또는 $끝에 추가하십시오 ..*(text in question).*\n
user

줄에 구조와 같은 "abc / xyz / something"이있는 경우 정규식을 사용하려면 '\'를 추가합니다. 예를 들어 우리는 ABC /과 / 일 사이에 아무것도를 검색 한 후 표현식이 될 것입니다 경우 : ABC /\.*.*\/ 일
Avik

저에게 적합합니다. 저처럼 여러 경기가 필요한 경우 다음과 같이 사용하십시오 |..*(a).*|.*(b).*|.*(c).*
bryc

0

사이트 맵을 편집하는 데 비슷한 문제가 발생했습니다.

이것은 나를 위해 일했습니다.

  1. 삭제할 줄의 마지막 단어를 복사하십시오.
  2. 모두 찾기
  3. 전체 줄을 삭제하려면 Delete 키를 누르세요.

0

위의 답변은 올바른 방법이지만 단일 문자열로도 행을 제거하려면 찾기-> 바꾸기-> ^.*[a-zA-Z]+.*\n찾기 섹션에 넣고 공백으로 계속 교체하십시오. 모두 바꾸기 버튼을 누르면 문자열이 하나라도있는 모든 행이 삭제됩니다.

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