[Linux] grep 활용하기 및 응용하기
- Computer/기타
- 2023. 1. 16.
Linux, grep 활용 및 응용하기
grep 활용하기
grep -n '\/admin\/member' ./nohup.out
nohup.out의 파일 중에서 "/admin/member"에 대한 검색값을 모두 찾는다.
해당 명령어는 cat을 생략했다.
검색 값 중 마지막 값만 불러오기
grep -n '\/admin\/member' ./nohup.out | tail -10
위의 명령어에서 tail -10이 추가되었다.
"/admin/member"에 검색 값 중에서 마지막 10줄만 표시하는 명령어이다.
검색된 결괏값의 이후 결괏값 확인하기
grep -n -A 10 '\/admin\/member' ./nohup.out
"/admin/member"에 대한 검색값이 출력되었다.
그러나 알고 싶은 것은 이 이후에 대한 Log일 때가 있다.
그때 -A 를 사용해서 결괏값을 출력한다.
숫자를 입력한 만큼 검색된 결괏값에서 +입력값이 추가로 출력된다.
이를 활용할 때는, tail 명령어 활용하면 매우 좋다. 안 그러면 로그창이 너무 길 수도 있다.
검색된 결괏값에 특정 조건 그리고 검색 개수 제한 두기
grep -n -A 10 '\/admin\/member' ./nohup.out | tail -11
이 부분이 헷갈릴 수가 있다.
grep -n -A 10 "/admin/member" ./nohup.out에 대한 결괏값이 10개가 검색될 수 있다.
그리고 -A 덕분에 10x10이 추가되어서 총 110행이 검색이 된다.
이 중, 내가 -A에 대한 마지막 하나에 대한 검색값을 찾기 위해서는 마지막 검색 된 행에서 -11까지가 한 개다.
11개씩, 9번째 차례가 99번째 행부터 이므로, 110개의 결괏값에서 -11인 99행부터 결과값 출력해야 한다.
검색된 개수 세기
grep -n '\/admin\/member' ./nohup.out | wc -l
"/admin/member"에 대한 결괏값이 출력된다. 단, 여기서는 검색된 로그를 출력하지 않고 검색된 행의 개수를 출력된다.
만약 해당 mapping을 얼마나 사용했는가를 알아볼 때, 유용한 명령어가 될 수 있다.
검색 결과 제한 걸기
more
cat catalina.out | grep 'error' | more
catalina.out 내용 중에서 'error'가 들어간 문구를 검색한다.
단, 한 페이지가 꽉 찬 다면, 검색을 멈춘다.
[space]: 다음 한 줄 만큼 보여주기
[Enter]: 다음 한 페이지만큼 보여주기
ness
cat catalina.out | grep 'error' | ness
catalina.out 내용 중에서 'error'가 들어간 문구를 검색한다.
단, 한 페이지가 꽉 찬 다면, 검색을 멈춘다.
[F]: 다음 페이지
[B]: 이전 페이지
more와 차이 점은 실수로 넘겼을 경우에도 '뒤로 가기' 기능이 존재한다.
grep 멋지게 활용하기
cat /etc/httpd/conf/httpd.conf | grep -v '^[[:space:]]*#' | grep -v ^[[:space:]]*$
리눅스의 주석은 '#'이다.
이 중 꼭 space키 혹은 tab키를 넣어서 어중간하게 #을 넣는 경우도 있다.
그리고 공백 제외를 포함한 주석 제외 후 모두 봐야 할 때 필요한 명령어이다.
흔히, Linux에서 bash를 볼 때 활용 된다.
cat /usr/local/tomcat/api/conf/server.xml
| sed 's/<!--/\x0<!--/g;s/-->/-->\x0/g' | grep -zv '^<!--' | tr -d '\0' | grep -v ^[[:space:]]*$
이 명령어를 찾게 된 이유는 Tomcat의 server.xml에서 주석을 제외한 사용되는 모든 것을 확인하고 싶어서였다.
<!--와 -->의 주석처리를 모두 찾아서 보여준다.
xml 방식 중에서 주석을 제외한 코드 찾을 때 매우 유용한다.
'Computer > 기타' 카테고리의 다른 글
VR 서버 설치하기 (0) | 2023.06.24 |
---|---|
[InteliJ] 한글 깨짐 해결하기 (0) | 2023.01.25 |
[기타] SHP파일을 불러오는 방법 (1) | 2023.01.11 |
[Eclipse] 글꼴 변경하기 (0) | 2023.01.08 |
[PostMan] PostMan 기본 설정 (0) | 2022.12.04 |