如何获取存储在某些符号之间的字符串?
所以我有/some/path/to/project/HelloWorld.xcodeproj
这样的字符串。我希望变量的结果为HelloWorld
。是否可以使用shell?
答案 0 :(得分:3)
有了这个,例如:
文件名:
$ filename=$(basename /some/path/to/project/HelloWorld.xcodeproj)
$ echo $filename
HelloWorld.xcodeproj
没有扩展名:
$ echo ${filename%.*}
HelloWorld
答案 1 :(得分:1)
是的,有可能:
$ NAME=/some/path/to/project/HelloWorld.xcodeproj
$ basename $NAME | cut -d. -f1
HelloWorld
或者如果你总是知道扩展名:
$ basename "$(basename "$NAME")" .xcodeproj
更通用的解决方案(也考虑了来自@fedorqui的案例):
$ basename $NAME | sed 's|\.[[:alpha:]]\+$||'
还有另一个解决方案(有更多管道,但没有正则表达式):
$ basename myfile.test.txt | rev | cut -d. -f2- | rev
$ myfile.test