${..#..}
일반 문자열 처럼 배열의 첫 번째 문자열부터 특정 문자열까지 어떻게 제거할 수 있나요?${s#abc}
$ s=(e u i o foo a)
$ t=(${s[@]#*foo})
$ echo "${t[@]}"
e u i o a
예상 대신 :
a
이러한 요구를 올바르게 해결하는 방법은 무엇입니까?
답변1
zsh
전환할 수 있는 옵션이 있는 경우 다음을 수행할 수 있습니다.
s[(r)foo,-1]=()
어디에r
취소아래 첨자 기호인덱스 대신 값으로 배열 멤버를 참조할 수 있습니다. 여기서는 첫 번째 값부터 마지막 요소( )까지의 ()
요소 범위 에 빈 목록이 할당됩니다.foo
-1