bash에서 변수 트림 [중복]

Sep 19 2020

변수 wordpress.tar.gz를 wordpress.

난 노력 했어:

#!/bin/bash
dir=wordpress.tar.gz
echo $dir RELEASE=$($dir | sed "s/-.tar.gz//") echo ${RELEASE}

답변

2 WiktorStribiżew Sep 19 2020 at 20:43

문자열 확장을 사용할 수 있습니다.

RELEASE="${dir%%.*}"

참고 항목 온라인 배쉬 데모 :

dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress

이 ${dir%%.*}부분은 %%첫 번째 점 문자까지 끝 (때문에 ) 에서 가장 긴 텍스트 청크를 제거합니다 .

를 사용 sed하려면 첫 번째 점으로 시작하는 (및 포함) 모든 문자열을 제거 할 수 있습니다.

RELEASE="$(sed 's/\..*//' <<< $dir)"

여기서는 \..*점을 찾은 다음 0 개 이상의 문자를 문자열 끝에 일치시키고 RHS가 비어 있으므로 일치 항목이 빈 문자열로 대체됩니다 (제거됨).

1 MichaelO. Sep 19 2020 at 20:42
RELEASE=$(echo $dir | sed "s/\.tar\.gz//")