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