LINUX

vi 사용법에서 찾은 문자열 이외의 것을 삭제하는 방법

Remoted remoted 2020. 12. 22. 19:52

:1,$ /[a-z0-9]/p

이렇게 하면 원하는 문자열을 찾습니다. 노란색인가? 음영으로 되구요.

저 노란색으로(찾아진 문자열)된것만 따로 문서화일로 보내거나

노란색이 안된(원치않는 문자열등)것은 vi 자체내에서 삭제를 하고 싶습니다.

치환,찾기,삭제는 알겠는데, 도저히 머리를 써도 꽁수가 없네요 ㅠㅠ

가르침을 주세요 ㅠㅠ

Forums: 

 

 

특정 패턴이 [b]있는[/b] 줄을 모두 지우려면..[code:1]&

글쓴이: cdpark / 작성시간: 목, 2005/02/24 - 6:03오후

특정 패턴이 있는 줄을 모두 지우려면..
:g/pattern/d

특정 패턴이 없는 줄을 모두 지우려면..
:v/pattern/d

혹은 grep, sed 등의 프로그램을 사용해서도 원하는 걸 할 수도 있습니다.

자세한 옵션은 언제나 그렇듯이 RTFM!

 

:%s/[^0-9a-z]//g

글쓴이: impactbar / 작성시간: 금, 2005/02/25 - 12:10오전

:%s/[^0-9a-z]//g

 

 

특정패턴만 추출하고 싶은데..

글쓴이: 익명 사용자 / 작성시간: 목, 2012/02/09 - 3:50오후

찾고자 하는 특정 패턴이 [0-9a-z] 같은 경우가 아니라
[p]\+[a]\+[th]\+[="]\+[a-zA-Z0-9/"]\+ <--- 이것처럼 복잡한 경우에는 어떻게 해야하나요 ?

찾고자 하는 문자열(highlight된 영역)을 제외하고 나머지 부분을 모두 삭제,
또는 찾고자 하는 문자열만 화면에 띄우고 싶은데
사용할일은 엄청 많을것 같은데 방법을 모르겠네요.

 

 

제가 쓰는 방법입니다

글쓴이: garam111 / 작성시간: 금, 2012/02/10 - 7:33오전

한 줄에 한번만 나온다면
:%s/\(.*\)\(pattern\)\(.*\)/g

여러번 나올 수 있다면
:%s/pattern/\r&\r/g
:v/pattern/d

===================================
행동할 때 열정은 자라난다.

 

 

제가 쓰는 방법입니다

글쓴이: garam111 / 작성시간: 금, 2012/02/10 - 7:33오전

한 줄에 한번만 나온다면
:%s/\(.*\)\(pattern\)\(.*\)/g

여러번 나올 수 있다면
:%s/pattern/\r&\r/g
:v/pattern/d

===================================
행동할 때 열정은 자라난다.

 

오타 정정합니다

글쓴이: garam111 / 작성시간: 금, 2012/02/10 - 7:36오전

한 줄에 한번만 나온다면
:%s/\(.*\)\(pattern\)\(.*\)/\2/g

===================================
행동할 때 열정은 자라난다.

 

 

:%s/.*\(pattern\).*/\1/g

글쓴이: Prentice / 작성시간: 토, 2012/02/11 - 12:01오후

:%s/.*\(pattern\).*/\1/g