2017-12-10 18 views
0

apt의 정규식에서 시퀀스를 기본적으로 이스케이프하는 방법이 있습니까?apt 정규식에 대한 이스케이프 시퀀스

문자열이 ++ 인 문자 그대로 일치시키려는 검색이 있습니다 (예 : libpng++). 나는 수동으로 을 \+\+으로 이스케이프 할 수 있다는 것을 알고 있지만 단순히 변수를 수동으로 이스케이프하는 대신 문자열을 이스케이프 처리해야합니다.

나는 apt-cache search libpng++ 시도했습니다 "libpng++", 'libpng++', \"libpng++\", \'libpng++\', \Qlibpng++\E

어떤이가 작동하도록하려면이 있습니까?

+0

@ WiktorStribiżew를 가져와 주셔서 감사합니다. 내가 할 수 있다는 것을 알고 있지만, 시퀀스가 ​​나에게 변수로 들어와, 나는 수동으로 각각을 편집 할 필요가 없다. 나는 원래의 질문을 편집했다. – StephenG

+0

실제로 탈출 할 방법이 없습니다. 하지만이 경우에는 'apt-cache search $ (echo libpng ++ | sed's | + | \\ + | g ')' –

+0

과 같은 작업을 할 수 있습니다. 각 특수 문자를 이스케이프 처리하려면 sed를 사용하십시오. –

답변

0

당신은 같이 apt-cache에 전달하기 전에 변수를 "치료"할 수 있습니다

var="libpng++" 
var=$(echo $var | sed 's|\([+*?]\)\\\1|g') 
apt-cache search $var 

[] 사이에 다른 특수 정규식 문자를 추가합니다.