Shell Scripting | tr -d'\ [\ _ \ _ \'

时间:2016-03-20 19:14:21

标签: shell scripting tr

我正在研究一个项目,特别想知道这个命令。

tr -d '\[\]\_'

我知道-d标志会删除所有匹配正则表达式内部条件的字符,但我不确定这个表达式是什么意思。它是否删除所有特殊字符,例如'!“[] \等等?或者是这个命令?

tr -cd "[[:alnum:]\n ]"

提前谢谢!

2 个答案:

答案 0 :(得分:2)

doTask()输出echo "][][_word[]_" | tr -d '\[\]\_'

反斜杠正在转义括号,因为它们是正则表达式中的特殊字符。因此,此命令只是删除字符串中的所有word []字符。

但是,_就足够了,因为tr不使用正则表达式。

答案 1 :(得分:2)

tr -d '\[\]\_'从标准输入中删除方括号和下划线。

逃离[]_在这里没用,因为这些字符与tr没有特殊含义,它们将始终作为文字进行处理。

请注意,tr 不使用正则表达式

从手册页:

  

SET1和SET2参数的格式类似于   常用表达;但是,它们不仅仅是正则表达式   字符列表。

[:alnum:]匹配字母数字字符(相当于0-9A-Za-z),因此与特殊字符无关。