![C-Shell - 사용자 입력에서 와일드카드 문자 제거](https://linux55.com/image/225409/C-Shell%20-%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%9E%85%EB%A0%A5%EC%97%90%EC%84%9C%20%EC%99%80%EC%9D%BC%EB%93%9C%EC%B9%B4%EB%93%9C%20%EB%AC%B8%EC%9E%90%20%EC%A0%9C%EA%B1%B0.png)
c-shell 스크립트의 사용자 입력 텍스트에서 와일드카드 문자를 제거하려고 합니다.
데이터를 저장하기 전에 쉘이 모든 와일드카드를 자동으로 확장한다는 것을 깨달았습니다.
사용자 입력에서 와일드카드가 아닌 부분을 분리하는 방법이 있습니까?
나는 또한 c-shell이 최고의 스크립팅 쉘이 아니라는 것을 깨달았습니다. 아쉽게도 대본은 이미 작성되어 있어서 그냥 바꾸려고 합니다.
답변1
변수에서 모든 *
, ?
및 문자를 제거하려면 [
다음을 수행할 수 있습니다.]
$input
% set input = '**-[qwerty]-??'
% set stripped = $input:as/?//:as/*//:as/[//:as/]//:q
% printf '%s\n' $stripped:q
-qwerty-