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 字符串删除特定字符的主要内容,如果未能解决你的问题,请参考以下文章

Bash脚本从.txt文件中删除特定行[重复]

如何使用 Bash 检查文件是不是包含特定字符串

有没有办法在bash中的特定子字符串之后提取子字符串?

Bash:查找包含特定字符串的文件并将它们复制到文件夹中

Bash:逐行遍历文件,找到特定的字符串并附加到每个后续行,直到找到相同的字符串

在bash中匹配单词后的一行中打印特定字符串[重复]