【发布时间】:2010-11-17 19:19:47
【问题描述】:
主题:one-liner 智能 Perl 命令而不是简单的 grep(在 Bash 脚本中)
我在使用 grep 匹配异常字符时遇到问题(我不能在每个异常字符前加上“\”,因为这很成问题,而且不是一个聪明的解决方案)。
我需要与 $Some_string 中定义的所有不可用字符完全匹配的 Perl 单行语法。示例:
Examples
Some_string="[234-094]"
Some_string="[ * ( & % @ !]"
Some_string="~ [ 0:3 # % & ^ + =]"
Some_string="1.1.1.1.-9.9.9.9 + 9999.999.1 – 10000"
Some_string="< { [ ' : ; " ? / . , "
Some_string="PORT.A.B.C.D – 124.543.455.33 – [ ! NOT EQUAL PORT 38737 – 3837652"
.
.
.
我的 grep 语法不好
cat file | grep $Some_string
使用 Perl(我需要以下正确的建议/解决方案):
cat file | perl -nle 'print if /$Some_string/'
规则
备注:如果 Some_string="111.111.111.111" 在文件中我有 1111.1111.1111.1111 那么 Perl 语法需要忽略这一点。 只有当我在文件中有这个时,Perl 才必须匹配: 111.111.111.111 。
第二点:if Some_string="WORD" 在我的文件中: ONEWORD 那么 Perl 语法需要忽略这一点。 只有当我在文件中有这个时,Perl 才必须匹配:WORD
【问题讨论】:
标签: perl