c-shell 스크립트의 사용자 입력 텍스트에서 와일드카드 문자를 제거하려고 합니다.
데이터를 저장하기 전에 쉘이 모든 와일드카드를 자동으로 확장한다는 것을 깨달았습니다.
사용자 입력에서 와일드카드가 아닌 부분을 분리하는 방법이 있습니까?
나는 또한 c-shell이 최고의 스크립팅 쉘이 아니라는 것을 깨달았습니다. 아쉽게도 대본은 이미 작성되어 있어서 그냥 바꾸려고 합니다.
답변1
변수에서 모든 *
, ?
및 문자를 제거하려면 [
다음을 수행할 수 있습니다.]
$input
% set input = '**-[qwerty]-??'
% set stripped = $input:as/?//:as/*//:as/[//:as/]//:q
% printf '%s\n' $stripped:q
-qwerty-