要删除bash中特定字符串后面的所有字符,我发现有两种方法可以使用//或%%。
例如,如果我想重命名格式为&#34的文件;这是总共83018个文件的#505;#34;。我可以通过删除""之后的所有内容来重命名它们。字符串,以便它只被命名为"这是505文件"使用这两种方式。
newfilename=${filename//of*}
和
newfilename=${filename%%of*}
这两个运行时,删除""之后的所有字符。字符串。
我想知道在删除字符串的部分时使用%%和//之间的区别,以及是否存在我应该使用其中一个的情况。
由于
答案 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
这需要与模式
匹配的最长子字符串