자율주행/김선영님의 리눅스 강의

리눅스 day7(REGEX)

Tony Lim 2020. 12. 16. 00:49
728x90

\

두개의 sh file을 chmod +x 해주고 
./daemon.sh > >(./proclog.sh INFO) 2> >(./proclog.sh ERR) &
를 실행 해주면 stdout 을 /dev/fd/60(임시 file descriptor) 에 연결해주고 stderr 를 /dev/fd/61(임시) 에 연결해주고 백그라운드 job으로 돌린다.

mkfifo /tmp/myfifo_m1 이런식으로 파이프를 생성 해줄수 있다. 

expr command는 sub-shell을 생성해서 실행되기에 fork가 엄청일어난다 쓰지 않는게 좋다.
let 이나 ((expression)) 처럼 내장된 함수를 서야 한다.

{s1,s2,s3,s4}_job == s1job,s2job,s3job,s4job  처럼 된다.

{1..100} == 1부터 100까지

${#varname} == varname 의 문자열 길이
${#arrayname[*]} == 배열의 길이
${varname:offset} == offset index 부터 시작한다.
${varname:offset:len} == offset 으로 len 만큼 출력 , len 이 음수일경우 뒤에서 len만큼 삭제 

${varname%pattern} == 후방 탐색으로 pattern과 매칭되는 varname의 값이 "삭제" 됨 %%(greedy)
${varname#pattern} == 전방탐색으로 pattern 과 매칭되는 varname의 값이 "삭제" 됨 ##(greedy)

${varname/pat/replace} == pat 패턴을 찾아서 replace로 교체 //는 greddy
${varname/#pat/repalce} == varname 변수의 앞부분에서 pat를 찾아서 repl로 교체
${varname/%pat/repalce} == varname 변수의 뒷부분에서 pat를 찾아서 repl로 교체

REGEX

POSIX REGEX 는 BRE 와 ERE 가 있다. 

BRE == grep 이 작동되는 기본값

ERE == extended REGEX으로 좀더 많은 표현식과 편의성, egrep 의 기본값이다.

sed == stream editor 로서 regex 기능을 일부 탑재하고 잇다.

awk == regex뿐만 아니라 문자열 관련의 방대한 기능을 가진 프로그래밍 언어 다.

grep은 실행시 엔진 (matcher)를 고를 수있다.
-G == BRE
-E == ERE == egrep
-P == PCRE == pcre2grep
-F == fgrep == 속도가 매우 빠르다

 

728x90

'자율주행 > 김선영님의 리눅스 강의' 카테고리의 다른 글

리눅스 day8  (0) 2020.12.17
리눅스 day7  (0) 2020.12.16
리눅스 day6(bash)  (0) 2020.12.14
리눅스 day5 (file sytem)  (0) 2020.12.11
리눅스 day4 (network)  (0) 2020.12.10