Bash 字符串删除特定字符

Posted

技术标签:

【中文标题】Bash 字符串删除特定字符【英文标题】:Bash String Remove Specific Characters 【发布时间】:2011-08-21 04:12:11 【问题描述】:

我几乎用完了 bash,但我需要做的最后一件事是对 bash 中的字符串进行正则表达式替换。我这里有 php 等价物

preg_replace("/[^a-z0-9\.]/", '',$theme_name);

我需要在 bash 中做同样的事情,即用任何内容替换每个非字母数字字符或点 (.)。提前致谢!

【问题讨论】:

【参考方案1】:

尝试以下方法:

echo "some string" | tr -d -c ".[:alnum:]"
tr“翻译”字符串中的字符 -d 删除而不是翻译 -c 表示补码 [:alnum:] 表示“字母数字”。

【讨论】:

我怎样才能使一个字符串等于那个? 使用反引号:newstr='echo "..." | tr ...'(但将 ' 替换为反引号。【参考方案2】:

试试这个

echo "hello world" | sed  -e 's/[reg_ex]//g' 

【讨论】:

以上是关于Bash 字符串删除特定字符的主要内容,如果未能解决你的问题,请参考以下文章