Shell 脚本 | tr -d '\[\]\_'
Shell Scripting | tr -d '\[\]\_'
我正在做一个项目,特别想知道这个命令。
tr -d '\[\]\_'
我知道 -d 标志会删除所有匹配内部正则表达式条件的字符,但我不确定这个表达式在说什么。是删除所有特殊字符,如'!"[]\等等?还是这个命令?
tr -cd "[[:alnum:]\n ]"
提前致谢!
echo "][][_word[]_" | tr -d '\[\]\_'
输出 word
反斜杠转义了方括号,因为它们是正则表达式中的特殊字符。所以这个命令只是从字符串中删除所有 [
]
和 _
字符。
但是,tr -d '[]_'
就足够了,因为 tr 不使用正则表达式。
tr -d '\[\]\_'
从标准输入中删除方括号和下划线。
转义 [
、]
和 _
在这里没有用,因为这些字符在 tr
中没有特殊含义,它们将始终作为文字处理。
注意tr
不使用正则表达式。
来自手册页:
The format of the SET1 and SET2 arguments resembles the format of
regular expressions; however, they are not regular expressions, only
lists of characters.
[:alnum:]
匹配字母数字字符(相当于 0-9A-Za-z
),因此与特殊字符无关。
我正在做一个项目,特别想知道这个命令。
tr -d '\[\]\_'
我知道 -d 标志会删除所有匹配内部正则表达式条件的字符,但我不确定这个表达式在说什么。是删除所有特殊字符,如'!"[]\等等?还是这个命令?
tr -cd "[[:alnum:]\n ]"
提前致谢!
echo "][][_word[]_" | tr -d '\[\]\_'
输出 word
反斜杠转义了方括号,因为它们是正则表达式中的特殊字符。所以这个命令只是从字符串中删除所有 [
]
和 _
字符。
但是,tr -d '[]_'
就足够了,因为 tr 不使用正则表达式。
tr -d '\[\]\_'
从标准输入中删除方括号和下划线。
转义 [
、]
和 _
在这里没有用,因为这些字符在 tr
中没有特殊含义,它们将始终作为文字处理。
注意tr
不使用正则表达式。
来自手册页:
The format of the SET1 and SET2 arguments resembles the format of regular expressions; however, they are not regular expressions, only lists of characters.
[:alnum:]
匹配字母数字字符(相当于 0-9A-Za-z
),因此与特殊字符无关。