如何在 Linux 中从字符串打印特定字符



如何通过从整个字符串中减去一些字符来打印字符串中的某些字符。

ggc-clusterdb01.rvd.ukd.com   ggc-clsdb02.rvd.ukd.com     gg-akb.rvd.ukd.com 

我怎么能减去像'01.rvd.ukd.com''02.rvd.ukd.com'这样的字符,'03.rvd.ukd.com'..等,并打印剩余的名称,如ggc-clsdbggc-clusterdb

我已经尝试了很多方法,但没有运气。帮我举个例子。

为了从字符串中删除后缀模式,请使用语法:${parameter%%word} .

例:

$ foo=ggc-clusterdb01.rvd.ukd.com
$ echo ${foo%%01.rvd.ukd.com}     
ggc-clusterdb

您也可以使用通配符:

$ echo ${foo%%0*.rvd.ukd.com}     
ggc-clusterdb

要删除点后的所有内容:

$ echo ${foo%%.*}
ggc-clusterdb

man bash的解释:

${parameter%%word}

删除匹配的后缀模式。 这个词是 展开以生成模式,就像在路径名扩展中一样。 如果 模式匹配扩展值的尾随部分 参数,则展开的结果是 具有最短匹配模式的参数("%"大小写)或 删除了最长的匹配模式("%%"大小写)。

相关内容

  • 没有找到相关文章

最新更新