2013-03-07 64 views
2

我的代碼如何閱讀在bash

FOO="dsad; dsadasddas; dadsad; dsdsad asdsdd" 
echo "${FOO%%;*}" 
result: dsad 

FOO="dsad; dsadasddas; dadsad; dsdsad asdsdd" 
echo "${FOO##*;}" 
result: dadsad; dsdsad asdsdd 

HOWTO打印的所有字符的第一個分號字符串?

FOO="dsad; dsadasddas; dadsad; dsdsad asdsdd" 
echo "${FOO???}" 
result: dsadasddas; dadsad; dsdsad asdsdd 

howto print and all character before last minicon?

FOO="dsad; dsadasddas; dadsad; dsdsad asdsdd" 
echo "${FOO???}" 
result: dsadasddas; dadsad; dsdsad asdsdd 

幫助任何人嗎?謝謝;)

+0

你的問題是什麼? – 2013-03-07 01:37:43

+0

如何打印第一個分號的所有字符以及如何打印以及最後一個分號前的所有字符。感謝 – petr 2013-03-07 01:42:14

+0

那些出現的星星和沒有出現在字符串和輸出中的星星是什麼? – 2013-03-07 02:28:14

回答

2

使用#%代替##%%

foo='one; two; three; four' 

# All characters after first semicolon 
echo "${foo#*;}" # two; three; four 

# All characters before last semicolon 
echo "${foo%;*}" # one; two; three 

${var##glob}${var%%glob}會帶走儘可能多地(貪婪匹配)。 ${var#glob}${var%glob}將帶走儘可能少(不情願的匹配)。

+0

非常感謝;) – petr 2013-03-07 21:15:47