1

我是正则表达式的新手,我无法使用 grep 处理正则表达式搜索 .. 所以想尝试 perl

你能给出一个相当于正则表达式的perl吗

^\s*\*\s*\[ \][^\*]+?(\w*\:[^\*]+\d$)|([^\*]+[.]com[.]au$)

我想在linux中的文件上执行它..多行搜索...有人可以帮我吗?

甚至可以处理我的操作的 awk 命令也可以。

并且已经在以下链接中进行此工作

带有正则表达式的 grep 范围

用于 grep 文件特定段落的正则表达式

当我按原样使用表达式时,它给了我:syntax error near "^"

4

2 回答 2

1

您正在寻找如何在命令行(单行)中将上述正则表达式与 perl 一起使用?尝试:

perl -nle 'print if /regex_here/' < file

例如

perl -nle 'print if /bin/' < /etc/passwd

将打印出所有带有“bin”的行,并且

perl -nle 'print if /^\s*\*\s*\[ \][^\*]+?(\w*\:[^\*]+\d$)|([^\*]+[.]com[.]au$)/' < file

应该做你想做的。

于 2012-06-13T18:16:00.557 回答
1

我设法使用 PCREGREP 实用程序解决了这个问题

pcregrep -M '(^\s*\*\s*\[ \][^\*]+?(\w*\:[^\*]+\d$)|([^\*]+[.]com[.]au$))' file1

做到了:) 谢谢@Damian @jack

于 2012-06-13T12:53:06.830 回答