2017-04-05 83 views
-3

我要提取的子字符串:如何提取字符串使用bash的子命令

"1.0.119" 

來源:

"/abc/efg/v/y-1.0.119.u" 

如何可以做到?

(我得到整個字符串從管道)

感謝

+0

你能不能進一步解釋你想做? –

+2

你爲自己做了什麼? – Inian

+0

你有報價嗎? – Inian

回答

1
> echo "/abc/efg/v/y-1.0.119.u" | cut -d'-' -f2 | cut -d'.' -f1-3 
1.0.119 
  • cut -d'-' -f2的回報是什麼,首先-後。
  • cut -d'.' -f1-3返回之前的第三個.
0
echo "/abc/efg/v/y-1.0.119.u" | sed 's/\(^.*-\)\(.*\)\(\..*$\)/\2/' 

用sed來文本分爲三個部分,用括號和打印只是第二部分分開。

0

您可以在最後-最後.用正則表達式猛砸之間不匹配的字符:

$ [[ "/abc/efg/v/y-1.0.119.u" =~ [^-]+-(.*)\. ]] && echo "${BASH_REMATCH[1]}" 
1.0.119 

或者sed用相同的模式:

$ echo "/abc/efg/v/y-1.0.119.u" | sed 's/^\([^-]*-\)\(.*\)\(\..*$\)/\2/' 
1.0.119 
相關問題