如何从字符串中删除一些字符?

时间:2017-07-18 12:49:03

标签: linux string bash shell cut

echo "(2abcd3rr3)" | 

我希望我的最终输出为:2abcd3rr3

6 个答案:

答案 0 :(得分:5)

您可以使用tr命令:

echo "(2abcd3rr3)" | tr -d "()"

答案 1 :(得分:1)

对于那些简单的字符串操作,你不需要为强大的工具花费一个新的过程,比如sed / awk / grep ... bash提供的内置替换:

$ a="(foo123)" 
$ echo ${a//[)(]}    
foo123 

答案 2 :(得分:0)

echo "(2abcd3rr3)" |grep -oP '\(\K[^)]+'
2abcd3rr3

答案 3 :(得分:0)

echo "(2abcd3rr3)" | sed $'s/[^[:alnum:]\t]//g'

答案 4 :(得分:0)

我认为这里缺少awk :)现在也在这里添加awk解决方案。

echo "(2abcd3rr3)"  | awk '{gsub(/\(|\)/,"");print}'

简单地全局替换字符(和)(不在gsub函数中转义它们以避免它们的特殊含义)然后打印该行。

EDIT1: 这里也是一个perl解决方案。

echo "(2abcd3rr3)"  | perl -p -i -e 's/\(|\)//g'

答案 5 :(得分:-1)

试试下面的PHP代码

str_replace(array( '(', ')' ), '', $coords);