bind -p |grep -E "\\e.\":"
일하다
하지만
bind -p |grep -E "\\e\\C-.\":"
작동 안함
여러 조합을 시도해봤지만
답변1
정규식에서 큰따옴표로 묶인 문자열을 사용하고 있으므로 일치시키려는 각 리터럴 백슬래시의 이스케이프를 탈출하려면 추가 백슬래시를 추가해야 합니다. 이는 쉘이 큰따옴표로 묶인 문자열의 백슬래시를 해석하기 때문입니다.
bind -p | grep "\\\e.\":"
bind -p | grep "\\\e\\\C-.\":"
-E
( 귀하의 정규식이 확장 정규식이 아니기 때문에 이는 필요하지 않습니다.)
또는 작은따옴표를 사용하여 이 작업을 수행하는 것이 좋습니다.
bind -p | grep '\\e.":'
bind -p | grep '\\e\\C-.":'
쉘은 원래 명령줄 인수를 "\\e\\C-.\":"
와 \e\C-.":
같은 정규식으로 해석합니다 eC.-":
.
원래 표현식 문자열은 "\\e.\":"
정규 표현식에 해당하므로 '유효'합니다 e.":
. 그러나 이전 리터럴 백슬래시와 일치시키려고 시도하지는 않습니다 e
.
[\]
대체 표현을 사용한 대체 표현 \\
:
bind -p | grep '[\]e.":'
bind -p | grep '[\]e[\]C-.":'
또는 리터럴 문자열을 grep하려면 with를 \e\C-
사용하여 정규식 대신 "고정 문자열"로 패턴을 사용하도록 합니다.grep
-F
bind -p | grep -F '\e\C-'