2013-10-16 64 views

回答

1

如果你只是想測試一個變量包含您可以使用offs

if [[ "$1" =~ "offs" ]] 
then 
    # do something 
fi 
+1

或者,爲了測試變量*是否以*值開始:'[[$ 1 == offs *]]' –

+0

我想要使用此方法。但其實我找到了一個新問題。 -name「* .txt」-exec grep -H SNR {} \; | grep「$ 1」> result.txt if [[「$ 1」=〜「offs」]] 然後 #做些什麼 fi – user2862989

0

可以做到使用單一的sed也:

s='offs3.0' 
(set -- $(sed 's/^\([a-z]*\)\(.*\)$/\1 \2/' <<< "$s") && echo "arg1=$1" "arg2=$2") 

arg1=offs arg2=3.0 
3

使用bash的正則表達式

s=offs3.0 
[[ $s =~ ^([^[:digit:]]+)(.*) ]] && 
    echo "${BASH_REMATCH[1]} - ${BASH_REMATCH[2]}" 
offs - 3.0 
0

或者只是使用shell的內置參數替換。

var='offs3.0' 
echo "${var%%[.0-9]*}" 
echo "${var##*[A-Za-z]}" 
+0

@fedorqui發佈了類似的答案,但之後被刪除。 – tripleee

相關問題