2017-08-28 271 views

回答

2

可能用awk與-分隔符

echo "abc-def-ghi" | awk -F'-' '{print $2}' 

-F - 要使用的字段分隔符。

{打印$ 2} - 打印第二位置

2

假設您有:

s="abc-def-ghi" 
ch='-' 

使用bash read內置:

IFS="$ch" read -ra arr <<< $s && echo "${arr[1]}" 

或者,使用正則表達式BASH:

re="$ch([^$ch]*)$ch" 

[[ $s =~ -([^-]*)- ]] && echo "${BASH_REMATCH[1]}" 

輸出:

def 
1

我會用兩個參數擴展。

str="abc-def-ghi" 
tmp=${str#*-} # Remove everything up to and including first - 
result=${tmp%%-*} # Remove the first - and everything following it 
0

爲什麼不直接使用削減命令是這樣的:

海峽= 「ABC-DEF-GHI」

回聲$海峽|切-f 2 -d「 - 」

,其中-d選項是分隔符和-f選項表示片段數(第一個片段號爲1,不爲0,因爲它是爲數組常見)。

相關問題