2013-06-29 38 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