정규 표현식 비교 질문
392
작성한 질문수 4
정규 표현식부터 난이도가 높아져서 이해가 잘 안되고 있습니다.
Bash는 여러 특수 문자의 조합들이 의미하는것이 어려운데요......
아래 2가지 질문에 다시 한번 설명해주시면 감사하겠습니다.
1. if [[ $LANG =~ $locale ]] : =~ 우측 표현식($locale)이 좌측 표현식($LANG)을 포함할때 사용이 가능한건가요?
부연 설명 드리자면, $LANG 입력시 "en_US.UTF-8" 결괏값이 나오는데, locale 명령어에 이 결괏값이 포함되어 있어야만 정규 표현식 비교가 가능한지 궁금합니다.
2. =~ 는 그냥 일반적인 산술 연산시 = 와 같은 일종의 문법인건가요?
답변 1
0
질문1. 정규식 비교는 다음처럼 정의됩니다
if [[ 대상문자열 =~ 패턴식 ]]; then ... else ... fi
왼쪽에는 비교하고 싶은 문자열을 적고, 비교연산자(=~) 오른쪽에는 정규식 패턴식을 적습니다
말 그대로 패턴이 일치하기만 하면 성공(true) 이 될 것입니다.
adfas1211 님께서 '우측 표현식($locale)이 좌측 표현식($LANG)을 포함할때 사용이 가능한건가요?' 라고 표현해주셨는데 그렇게 생각하셔도 됩니다. 그 근거는 다음 예시입니다
(예문)
bash-3.2$ if [[ HELLO =~ H ]]; then echo YES; else echo NO; fi
YES
bash-3.2$ if [[ HELLO =~ HELLO1 ]]; then echo YES; else echo NO; fi
NO
bash-3.2$
추가. [[ ]] 이중 대괄호는 BASH에서는 지원하지만 본쉘(sh)에서는 사용할 수 없습니다. 주의하세요~~
질문2. 그렇습니다 :)
영상 섹션 2. 특수문자 종류 미리 보기에서 보신 것처럼 해커들은 자신들이 표현(구현)하고 싶은 기능을 모두 특수문자에 담고 싶어 했을 것입니다. 하지만, 키보드 특수문자의 갯수는 한정되어 있죠. 따라서, 중복 정의가 불가피합니다
바로 이 부분이 쉘 스크립트를 난해하게 만들었다는 점은 인정해야 합니다
보충 설명이 필요하면 댓글 달아주세요
59회차 학습 미작동
0
65
2
BASH_REMATCH 변수가 어디서 나온거죠?
1
914
1
${object%%:*}, ${object#*:}는 어떤 뜻인가요
2
396
1
./euid.sh
2
397
1
touch 'Gone with the wind.mp3' 입력 결과가 다릅니다
1
363
1
스크립트에서 %는 무엇을 의미하나요?
1
519
1
하드 링크, 심볼릭 링크
1
690
2
[..]와 테스트 강의에서
1
388
1
하드 링크, 심볼릭 링크
0
631
1
변수명이 출력되지 않습니다.
1
284
1
변수명 출력이 되지 않습니다.
0
345
1
select in case문 질문
0
230
1
crontab 질문이 있습니다.
1
224
2
(..)_(..) 와 BASH_REMATCH
1
747
1
^[.+] 정규표현식이 RegExr 를 나타내는게 맞나요?
1
387
2
실습자료를 다운받은 다음에 어떻게 해야 하나요?
0
435
3
sudo cp helloworld.sh /usr/bin 명령어 질문
1
603
1
read -p 명령어가 동작하지 않습니다.
2
350
1
wc 명령어에 -L 옵션이 동작하지 않습니다.
1
436
1
book이 변수가 아니라 파일인가요?
1
355
1
sed 관련 질문
1
639
2
파일접근권한 강의
1
143
1
[] 결과
2
210
1
# (주석) 관련 질문 드립니다.
1
163
1





