![적은 패턴 - [ ] 또는 $로 끝남](https://rvso.com/image/97017/%EC%A0%81%EC%9D%80%20%ED%8C%A8%ED%84%B4%20-%20%5B%20%5D%20%EB%98%90%EB%8A%94%20%24%EB%A1%9C%20%EB%81%9D%EB%82%A8.png)
인용하다bash 내장 명령에 대한 개인 페이지를 얻을 수 있나요?:
bashman () { man bash | less -p "^ $1 "; }
이 기능은 원하는 bash 수동 매개변수 섹션으로 직접 이동합니다.
수동 이름과 수동 매개변수를 즉시 허용하도록 만들고 싶기 때문에 이 기능을 다음과 같이 변경합니다.
function superman () {
man "$1" | less -p "^[ ]+[-]*$2[ ]"
}
다음과 완벽하게 작동합니다.
$ 슈퍼맨 배쉬 유형
그리고 원하는 매뉴얼 페이지 섹션으로 이동합니다.
하지만 개행 문자로 끝나는 섹션에서는 작동하지 않습니다. 다음과 같이 변경해야 합니다.
function superman () {
man "$1" | less -p "^[ ]+[-]*$2$"
}
그런 다음 실행하면 매개변수 $ superman gcc Wall
로 이동할 수 있습니다 Wall
.
[ ]
결합 하고 $
존재하는 방법은 무엇 입니까 [ ] OR $
? 즉"적어도 하나의 공백" 또는 "개행 문자"로 끝납니다..
시도했지만 $ man gcc | less -p "^[ ]+[-]*Wall[ |$]"
작동하지 않습니다.
정규식이 OR [ ]
이면 해결할 수 없다고 믿기 때문에 섹션의 시작 부분이 아닌 원하지 않는 점프를 허용합니다 .[ ]
$
[답변 감사합니다]
최종 양식을 여기에서 공유하고 싶습니다.
function superman () {
if [[ "$1" == "-I" || "$1" == "-i" ]]; then
man "$2" | less -I -p "^[ ]+-*$3( |=|,|$|\[)"
else
man "$1" | less -p "^[ ]+-*$2( |=|,|$|\[)"
fi
}
이는 섹션 superman -i gcc wl
으로 이동할 때 대소문자를 구분하지 않음을 의미하는 실행 시 작동합니다 . 요구 에서 . require 에서 , 그리고 require 에서-Wl,option
-Wl,option
gcc
,
scaletempo
mplayer
[
scale
mplayer
=
나는 버전에 대해서도 썼습니다 info
:
function superinfo () {
if [[ "$1" == "-I" || "$1" == "-i" ]]; then
info "$2" | less -I -p "^ *‘*'*-*\** *$3’*( |=|,|$|\[|:|')"
else
info "$1" | less -p "^ *‘*'*-*\** *$2’*( |=|,|$|\[|:|')"
fi
}
superinfo gcc _HPPA
, superinfo -i gcc werror
, superinfo -i gcc wl
, superinfo -i mplayer scaletempo
, superinfo -i mplayer stats
, superinfo -i ls -f
, 및 superinfo -i bash -a
(여기서 빼기 기호를 사용하면 큰 차이가 있음) 로 테스트되었습니다 . of ’
에서 사용되는 유니코드의 LEFT SINGLE QUOTATION MARK .-f
ls
답변1
나는 당신이 정규식에서 [
대괄호 의 의미에 대해 착각하고 있다고 생각합니다 . ]
패턴을 참고하세요.
^[ ]+[-]*Wall[ |$]
[ ]
은 (단일 공백) 과 정확히 동일하며
[-]
와도 정확히 동일합니다 -
. 그리고 패턴의 마지막 부분에서는 "either or " [foo|bar]
를 의미하지 않습니다 .foo
bar
당신이 찾고 있는 것은 입니다 ( |$)
. 이것이 한 가지 또는 다른 것을 일치시키는 구문입니다. (또한 달러 기호 때문에 큰따옴표 대신 작은따옴표나 백슬래시를 사용하여 패턴의 해당 부분을 인용해야 합니다.)
[thing]
문자 클래스를 나타냅니다. t
, h
, i
, n
또는 와 일치합니다 g
.
답변2
[ ]
와 를 결합하는 방법은 무엇입니까$
?
([ ]|$)
또는( |$)