perl - 如何在perl中grep方括号
问题描述
我正在尝试使用 perl 在文件中 grep [0](包括方括号),我尝试了以下代码
my @output = `grep \"\[0\]\" log `;
但不是返回 [0],而是在匹配 0 的地方给出输出
解决方案
您的问题是您需要转义[
and]
两次,因为[ ... ]
在正则表达式中有特殊含义(它定义了一个字符类)。
#!/usr/bin/perl
use strict;
use warnings;
my @output = `grep "\\[0\\]" log `;
print for @output;
但是你真的不需要使用外部grep
命令。Perl 擅长文本处理。
#!/usr/bin/perl
use strict;
use warnings;
while (<>) {
print if /\[0\]/;
}
我的解决方案从名称作为程序参数(或 from STDIN
)的任何文件中读取。
推荐阅读
- html - 填写第 3 方 htacces
- javascript - 'selectedHandler' 不是函数,Node JS
- api - 当我提出请求时,URL 中的参数在哪里?
- azure-devops - Azure 管道复制文件任务
- asp.net-identity - Asp.Net Identity 检查 tokenlifespan 时间为两个因素
- javascript - 带有时间戳的对象数组的日期过滤[图表添加]
- snakemake - 用于输出文件命名的 Snakefile 和通配符/正则表达式
- python - scikit-learn 在 make_scorer 中苦苦挣扎
- javascript - 终止 JavaScript 中的处理程序执行
- android - Android Studio 错误:程序类型已存在:org.objectweb.asm.Edge