如何删除从猛砸路径字符串的文件后缀和路径部分?
问题描述:
如果给定字符串的文件路径,如/foo/fizzbuzz.bar,我将如何使用bash提取所述串的只是fizzbuzz部分?
Given a string file path such as "/foo/fizzbuzz.bar", how would I use bash to extract just the "fizzbuzz" portion of said string?
答
下面是如何在猛砸#和运营%做到这一点。
Here's how to do it with the # and % operators in Bash.
$ x="/foo/fizzbuzz.bar"
$ y=${x%.bar}
$ echo ${y##*/}
fizzbuzz
$ {X%的.bar}
也有可能是 $ {X%。*}
后去除一切一个点或 $ {X %%。*}
第一个点后删除所有内容。
${x%.bar}
could also be ${x%.*}
to remove everything after a dot or ${x%%.*}
to remove everything after the first dot.
例如:
$ x="/foo/fizzbuzz.bar.quux"
$ y=${x%.*}
$ echo $y
/foo/fizzbuzz.bar
$ y=${x%%.*}
$ echo $y
/foo/fizzbuzz