2013-05-30 9 views
0

好傢伙, 我有很難搞清楚如何做到這一點: 在我的硬件,我需要的是可能包含數過2串之間進行比較, 這裏有一些例子:比較字符串根據在bash dictionry appearnce爲了

A>a 
ad>abc 
Abc>U2 

有沒有辦法做到這一點時,我有兩個變量字符串?!。 非常感謝。

回答

1

我相信你想要的東西,如:

if [[ "$string1" < "$string2" ]]; 
then 
    comparison='<' ; 
else 
    if [[ "$string1" < "$string2" ]]; 
    then 
     comparison='>' 
    else 
     comparison='=' 
    fi 
fi 
echo "${string1}${comparison}${string2}" 

但請注意,這在很大程度上取決於您的語言環境!

我會建議在腳本的第一行添加一個語言環境更改以確保您使用正確的語言環境。例如:

LC_ALL='C' 

(另見:LC_COLLATE,LC_LANG等,如果你只需要具體的測試特定的語言環境,但改變LC_ALL改變他們全部)

可以知道支持(已安裝)

locale -a 

和當前使用的區域設置有:與語言環境

locale 
2

要比較字符串,通常的方法是[[ $var1 < $var2 ]]

+0

+1如果不工作,OP必須更具體。 – l0b0

+0

另外,至少在ASCII對照序列中,'A twalberg

+0

在問我的老師其被稱爲字典順序,任何想法? – Emad