Bash 获取某些符号之间的子字符串
如何获取存储在某些符号之间的字符串Bash 获取某些符号之间的子字符串,bash,shell,terminal,Bash,Shell,Terminal,如何获取存储在某些符号之间的字符串 所以我有这样的字符串,比如/some/path/to/project/HelloWorld.xcodeproj。我想在变量中得到结果,即HelloWorld。是否可以使用shell?例如: 文件名: $ filename=$(basename /some/path/to/project/HelloWorld.xcodeproj) $ echo $filename HelloWorld.xcodeproj 无扩展: $ echo ${filename%.*}
所以我有这样的字符串,比如
/some/path/to/project/HelloWorld.xcodeproj
。我想在变量中得到结果,即HelloWorld
。是否可以使用shell?例如:
文件名:
$ filename=$(basename /some/path/to/project/HelloWorld.xcodeproj)
$ echo $filename
HelloWorld.xcodeproj
无扩展:
$ echo ${filename%.*}
HelloWorld
$ basename "$(basename "$NAME")" .xcodeproj
例如: 文件名:
$ filename=$(basename /some/path/to/project/HelloWorld.xcodeproj)
$ echo $filename
HelloWorld.xcodeproj
无扩展:
$ echo ${filename%.*}
HelloWorld
$ basename "$(basename "$NAME")" .xcodeproj
是的,有可能:
$ NAME=/some/path/to/project/HelloWorld.xcodeproj
$ basename $NAME | cut -d. -f1
HelloWorld
或者如果您总是知道分机:
$ echo ${filename%.*}
HelloWorld
$ basename "$(basename "$NAME")" .xcodeproj
更通用的解决方案(还考虑了@fedorqui的案例):
还有另一个解决方案(使用更多管道但不使用正则表达式):
是的,有可能:
$ NAME=/some/path/to/project/HelloWorld.xcodeproj
$ basename $NAME | cut -d. -f1
HelloWorld
或者如果您总是知道分机:
$ echo ${filename%.*}
HelloWorld
$ basename "$(basename "$NAME")" .xcodeproj
更通用的解决方案(还考虑了@fedorqui的案例):
还有另一个解决方案(使用更多管道但不使用正则表达式):
Mmm如果文件是
myfile.test.txt
,该怎么办?它只会返回myfile
。我知道这不是示例输入,但可能会发生。嗯,如果文件是myfile.test.txt
,该怎么办?它只会返回myfile
。我知道这不是示例输入,但可能发生。