[英]Bash Script: Difference between %% and //
要删除bash中特定字符串后面的所有字符,我发现有两种方法可以使用//或%%。
例如,如果我想重命名格式为“这是总共83018个文件的505个文件”的文件。 我可以通过删除“of”字符串之后的所有内容来重命名它们,以便它只使用这两种方式命名为“这是505文件”。
newfilename=${filename//of*}
和
newfilename=${filename%%of*}
这两个运行时都会删除“of”字符串后面的所有字符。
我想知道在删除字符串的部分时使用%%和//之间的区别是什么时候我应该使用一个而不是另一个。
谢谢
它们是两个不同的功能
${string//find/replace}
${string%%pattern}
例如
$ var="here of there of"; echo ${var//of}
here there
如果你不提供替换字符串,这是一个简单的删除
$ var="here of there of"; echo ${var%%of}
here of there
这需要与模式匹配的最长子串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.