Grep에 자바스크립트 정규식 뿌리기

개요

grep 명령어는 유닉스 사용자에게 있어서 뗄레야 뗄 수 없는

아주 훌륭한 유틸리티입니다.

어느 날, 명령어를 사용하다가 문득 든 생각입니다.

자바스크립트 정규식을 사용할 수 있다면 grep의 정규식을 외우지 않고 더 쉽게 검색할 수 있을텐데.

예. 물론 찾아보면 있을법한 프로그램입니다.

또한 이미 있는 grep이 더 안전하고 빠르고 좋겠죠.

하지만 얼마 걸리지 않을 것 같아 만들어 보았습니다.


Typescript

Javascript의 상위 호환.

타입에 대한 정의가 가능한 타입스크립트에 한 번 도전해 보았습니다.

사용하는 방법이 틀린 것 같지만 어쨌든 동작합니다.

일단 동작한 것에서 만족하죠.


설치

일단 Node JS 8.x 이상의 버전과 Git이 있어야 합니다.

1
2
3
$ git clone https://github.com/raravel/ngrep.git
$ cd ngrep
$ npm install

위 명령어를 입력하면 설치는 끝났습니다.

/usr/bin/ngerp 을 확인할 수 있습니다.


사용법

명령어 사용법은 기존 grep 과 유사합니다.

그러나 단순한 몇 가지의 옵션밖에 없습니다.

추후 추가할 예정입니다.

1
2
3
4
5
6
7
8
9
10
11
Usage: ngrep [search] [file] [options...]
search: javascript regex pattern string for search.
file: file pattern javascript regex string

Options
-i, --ignore-case Ignore case distinctions in both the PATTERN and the input files.
-r, --recursive Read all files under each directory.
-n, --line-number Prefix each line of output with the 1-based line number within its input file.
-s, --no-messages Suppress error messages.
--exclude FILE_PATTERN skip files and directories matching FILE_PATTERN
--exclude-dir PATTERN directories that match PATTERN will be skipped.

ngrep 을 사용하여 폴더 내 파일들을 대상으로 검색할 수 있습니다.

1
$ ngrep console '.*js'

스트림 파이프에 연결해서 stdin 에 입력하여 검색할 수 있습니다.

1
$ cat ngrep.ts | ngrep console

자바스크립트 정규식을 사용하여 검색할 수 있습니다.

1
$ cat ngrep.ts | ngrep "con.*err.*\ {2}.*directory"

파일 검색에도 자바스크립트 정규식을 사용할 수 있습니다.

exclude, exclude-dir 옵션에도 사용할 수 있습니다.


Github

https://github.com/raravel/ngrep

읽어주셔서 감사합니다

작성자: raravel
주소: https://raravel.dev/20191211-1830/
저작권 고지: 이 블로그의 모든 기사는 별도로 명시하지 않는 한 CC BY-NC-SA 4.0 에 따라 라이선스가 부여됩니다.