Bash脚本:%%和//之间的区别

时间:2016-04-14 17:20:42

标签: regex string bash

要删除bash中特定字符串后面的所有字符,我发现有两种方法可以使用//或%%。

例如,如果我想重命名格式为&#34的文件;这是总共83018个文件的#505;#34;。我可以通过删除""之后的所有内容来重命名它们。字符串,以便它只被命名为"这是505文件"使用这两种方式。

newfilename=${filename//of*}

newfilename=${filename%%of*}

这两个运行时,删除""之后的所有字符。字符串。

我想知道在删除字符串的部分时使用%%和//之间的区别,以及是否存在我应该使用其中一个的情况。

由于

1 个答案:

答案 0 :(得分:3)

它们是两个不同的功能

${string//find/replace}

${string%%pattern}

e.g。

$ var="here of there of"; echo ${var//of}
here there

如果你不提供替换字符串,那就是一个简单的删除

$ var="here of there of"; echo ${var%%of}
here of there

这需要与模式

匹配的最长子字符串