我可以使用以下
获取文件扩展名url='http://foo.com/index.php?foo=bar'
ext="${url##*.}"
echo $ext // php?foo=bar
但是我有一个问题,即从中移除GET参数 这个,我怎样才能在我的外部参数中使用它?
我正在使用BASH v4 +
答案 0 :(得分:4)
您可以使用:
ext='php?foo=bar'
echo "${ext%\?*}"
php
答案 1 :(得分:2)
删除结果的后缀,包括第一个?
。
get_params=${ext%%\?*}
您还可以使用正则表达式在一次操作中获取扩展名。
[[ $url =~ \.([^?.]+)\? ]]
ext=${BASH_REMATCH[1]}
答案 2 :(得分:0)
以下是针对非bash v4 +用户sed
的解决方案:
$ cat test.sh
#!/bin/bash
url='http://foo.com/index.php?foo=bar'
ext=$(echo $url|sed "s/.*\.\([a-zA-Z0-9]*\)\?.*/\1/g")
echo $ext
$ ./test.sh
php