标签: regex

Bash 正则表达式问题

我在用

ps -ef | grep java | wc -l
Run Code Online (Sandbox Code Playgroud)

查找在任何给定时间运行的 java 进程数。

上面的命令显然也在结果中计算了“ps -ef | grep java”命令。

为了避免这种情况,我发现我可以使用

ps -ef | grep [j]ava | wc -l
Run Code Online (Sandbox Code Playgroud)

它工作正常。但是,我想弄清楚为什么它能够从结果中跳过原始命令。

bash regex

1
推荐指数
1
解决办法
886
查看次数

确定电子邮件是否包含一定数量的特定字符

我希望编写一个 SpamAssassin 规则,如果电子邮件n正文中包含超过一个特定字符,则该规则将匹配。不一定是连续的。例如,如果消息中总共有十个星号,则匹配规则。

如果有十个连续的星号,我知道如何编写规则,如下所示:

body TEN_ASTERISKS /(**********)/
score TEN_ASTERISKS 0.5
describe TEN_ASTERISKS Message body contains ten asterisks.
Run Code Online (Sandbox Code Playgroud)

我将如何重写规则以匹配总共十个星号(不一定是连续的)?

email spamassassin regex

1
推荐指数
1
解决办法
542
查看次数

Postfix Header_Check 正则表达式“不匹配”问题

我正在尝试将 Postfix 配置为不接受来自除我自己的域之外的地址的出站邮件。

以下正则表达式仅成功拒绝 3 个域:

/etc/postfix/header_checks:
/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
Run Code Online (Sandbox Code Playgroud)

我想基本上扭转它并阻止除这三个之外的所有内容。

所以根据手册:

!/pattern/flags result 当pattern 与输入字符串不匹配时,使用相应的结果值。

然而,这只会阻止一切:

/etc/postfix/header_checks:
!/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
Run Code Online (Sandbox Code Playgroud)

postfix regex

1
推荐指数
1
解决办法
3170
查看次数

使用 FilesMatch 定位所有文件

我曾尝试使用 Apache FilesMatch 指令将所有文件作为 PHP 处理,但未成功。使用 this <FilesMatch "\.html$">,我能够将特定的文件扩展名作为 PHP 处理,但是我无法找到包含所有文件类型的指令,而我们没有扩展名。

如何配置 Apache 以解析 PHP 内容的所有文件?

linux regex apache-2.4 apache2

1
推荐指数
1
解决办法
4150
查看次数

不区分大小写的 grep 模式匹配

我想编写一个 grep 函数来显示我主机上的所有侦听端口。

我知道如何通过在 grep 中使用 -i 函数来做到这一点:

netstat -a |egrep -i 'listen'
Run Code Online (Sandbox Code Playgroud)

但现在我想用正则表达式写它:

netstat -a |egrep 'm/listen/i'
Run Code Online (Sandbox Code Playgroud)

我想:m 因为 netstat 输出多行,而 i 因为它是 LISTEN,所以我想要不区分大小写。

然而,这不会给出任何输出。我究竟做错了什么 ?

regex

0
推荐指数
1
解决办法
200
查看次数

无法让用户通过 Squid 代理访问某些站点

我们在 RHEL 服务器上运行 Squid。我们希望阻止用户访问 Facebook,而不是几个特定站点,例如我们组织的页面。不幸的是,如果不让所有 Facebook 都通过,我就无法解锁这些特定页面。

[squid.conf]

# Local users:
acl local_c src 192.168.0.0/16

# HTTP & HTTPS:
acl Safe_ports port 80 443

# File containing blocked sites, including Facebook:
acl blocked dst_dom_regex "/etc/squid/blocked_content"

# Whitelist:
acl whitelist url_regex "/etc/squid/whitelist"

# I do know that order matters:
http_access allow local_c whitelist
http_access allow local_c !blocked
http_access deny all
Run Code Online (Sandbox Code Playgroud)

[blocked_content]

.porn_site.com
.porn_site_2.com
[...]
facebook.com
Run Code Online (Sandbox Code Playgroud)

[白名单]

facebook.com/pages/Our-Organization/2828242522
facebook.com/OurOrganization
facebook.com/media/set/
facebook.com/photo.php
www.facebook.com/OurOrganization
Run Code Online (Sandbox Code Playgroud)

我最大的弱点是正则表达式,所以我不能 100% 确定这是否全部正确。如果我删除 http_access 规则的“!blocked”部分,所有 Facebook 都可以正常工作。如果我从blocked_content 文件中删除“facebook.com”,则所有Facebook 都可以正常工作。

现在,访问 …

proxy squid regex

0
推荐指数
1
解决办法
4312
查看次数

重命名大量文件

如何使用这样的模式重命名所有文件:

thumb_f318d8a580ca5717d686a323b6c2ca0d.jpg0000777
thumb_f18d8aup90ca5717d686a323b6c2c5uh.jpg0000777
thumb_jessr8d8a580ca5717d68623etrtckks.jpg0000777
thumb_4hghd8a580ca5717d686a323b6c2ghjj.jpg0000777
....
Run Code Online (Sandbox Code Playgroud)

thumb_f318d8a580ca5717d686a323b6c2ca0d.jpg
thumb_f18d8aup90ca5717d686a323b6c2c5uh.jpg
thumb_jer8d8a580ca5717d686a323etrtckks.jpg
thumb_4hghd8a580ca5717d686a323b6c2ghjj.jpg
....
Run Code Online (Sandbox Code Playgroud)

terminal rename regex mv

-1
推荐指数
1
解决办法
142
查看次数

标签 统计

regex ×7

apache-2.4 ×1

apache2 ×1

bash ×1

email ×1

linux ×1

mv ×1

postfix ×1

proxy ×1

rename ×1

spamassassin ×1

squid ×1

terminal ×1