如何在Bourne shell里截取一个字符串啊?

testserver
如何在Bourne shell里截取一个字符串啊?

现在有一个形如abc-def.jar的文件名,需要截取abc及def
不能用bash,也不能用awk或者sed之类的,因为无法确定客户的机器上有没有安装。
谢谢!

flw
[quote]也不能用awk或者sed之类的,因为无法确定客户的机器上有没有安装。[/quote]
无法确定是因为经验不足吧?
不然就可以确定到底是“有”还是“没有”安装了。

liaosnet
回复 #1 testserver 的帖子

那用什么??:em06: :em17:
有shell就会有awk/sed 的呀..

walkerxk
perl总有的吧
echo abc-def.jar|perl -pe 's/-.*//'
echo abc-def.jar|perl -pe 's/.*-//;s//..*//'
如果你说你是*nix,然后没有perl,那我只能[img]http://bbs.chinaunix.net/images/smilies/icon_eek.gif[/img]

walkerxk
[quote]原帖由 [i]liaosnet[/i] 于 2008-6-19 18:51 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8622539&ptid=1164901][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
那用什么??:em06: :em17:
有shell就会有awk/sed 的呀.. [/quote]
不一定,我可以删掉[img]http://bbs.chinaunix.net/images/smilies/icon_mrgreen.gif[/img]
毕竟不是必须的。我想嵌入式的系统里面应该没有的吧。

liaosnet
回复 #5 walkerxk 的帖子

那perl就更加可能没有啰~:mrgreen: :mrgreen:

ruifox
echo "abc-def.jar"|cut -c 1-3

寂寞烈火
#bsh
str=abc-def.jar;str=${str%%.*};a=${str%-*};b=${str#*-};echo $a $b