2013-06-29 37 views
0

假設一個具有包含參數的字符串:查找參數字符串以短線

echo "-v foo -d --print bar-foo ba-z fOo"

一個如何獲得參數以短線?

-v -d --print

+0

在什麼語言? – kgraney

+1

基於標籤,我相信它的'bash' – vee

+0

最好是bash。但也可以是perl,awk,...以及。 – Uroc327

回答

0
$ str="-v foo -d --print bar-foo ba-z" 
$ for i in $str; do test ${i::1} = - && echo $i; done 
-v 
-d 
--print 

注意這是這樣的情況:因爲要發生的分詞必須引用變量。 (也就是說,不寫for i in "$str"

2

一種替代方案:

STR="-v foo -d --print bar-foo ba-z fOo" 
echo "$STR" | egrep -o -e "(^|)+--?[^ ]+" | sed -e 's/ //g' 

將輸出:

-v 
-d 
--print 

如果你想分析傳遞給你的腳本選項,你應該考慮使用getopt

參考文獻:

+0

+1推薦getopt – jgb