繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM