adsense_in_article_test


[bash: grep] 문자열 검색과 파일명 확인의 조합 리눅스 bash script

조금 생각해 보면 금방 알 수 있는 내용이긴 하지만, 최근 쇠퇴하고 있는 기억력을 절감하는 중이라 적어 두기로 했다.

grep 명령을 이용해서 특정 문자열을 검색하고 해당 문자열을 포함한 파일명을 찾는 자세한 방법은 이전에 올린 게시물을 참고하자.

일단 아래의 예시를 보자. -H 옵션을 사용하면 결과가 파일명:문자열 형태로 출력된다. -r(recursive) 옵션은 지정한 디렉토리와 그 하위 디렉토리에서 검색하기 위한 것이다.

# /home/john/Documents 디렉토리와 그 하위 디렉토리에서 abcd를 포함한 파일명과 해당 문자열을 출력
grep -Hr abcd /home/john/Documents
/home/john/Documents/my_file.txt:abcdefg
/home/john/Documents/my_file2.dat:abcde_xyz


다단계로 복잡한 검색을 하면서 파일명도 확인하려고 한다면, 일단 파일명을 확인하기 위한 -H 옵션으로 검색을 하고, 나머지 복잡한 검색을 파이프(|)를 이용해서 뒤쪽으로 이어주면 된다. 아래의 예시를 보자.

# abcd가 포함된 파일명과 해당 문자열을 검색한 후에 xyz가 포함된 항목을 제외(-v 옵션)
grep -Hr abcd /home/john/Documents | grep -v xyz
/home/john/Documents/my_file.txt:abcdefg

파이프 이후에는 -H 옵션이 의미가 없어진다. 입력이 파일이 아니라 이전 명령의 출력값이 되기 때문이다. 아래와 같이 사용하면 파일명을 확인할 수 없다.

# 이렇게 하면 파일명 확인 불가능
grep -r abcd /home/john/Documents | grep -H -v xyz

참고로 grep 명령과 관련된 다른 게시물들은 여기로




덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

48756
4475
2082186

2019 대표이글루_IT

Google Analytics