C-Shell - 사용자 입력에서 와일드카드 문자 제거

C-Shell - 사용자 입력에서 와일드카드 문자 제거

c-shell 스크립트의 사용자 입력 텍스트에서 와일드카드 문자를 제거하려고 합니다.

데이터를 저장하기 전에 쉘이 모든 와일드카드를 자동으로 확장한다는 것을 깨달았습니다.

사용자 입력에서 와일드카드가 아닌 부분을 분리하는 방법이 있습니까?

나는 또한 c-shell이 ​​최고의 스크립팅 쉘이 아니라는 것을 깨달았습니다. 아쉽게도 대본은 이미 작성되어 있어서 그냥 바꾸려고 합니다.

답변1

변수에서 모든 *, ?및 문자를 제거하려면 [다음을 수행할 수 있습니다.]$input

% set input = '**-[qwerty]-??'
% set stripped = $input:as/?//:as/*//:as/[//:as/]//:q
% printf '%s\n' $stripped:q
-qwerty-

관련 정보