正如标题所暗示的,哪个更适合匹配数字,[[:digit:]]还是[0-9]?
我正在使用 bash shell
谢谢 :)
我尝试设置 max-age 标头指令和 Content-Disposition “附件”如下:
location / {
# set up max-age header directive for certain file types for proper caching
location ~* \.(?:css|js|ico|gif|jpe?g|png|mp3|mpeg|wav|x-ms-wmv|eot|svg|ttf|woff|woff2)$ {
expires 7d;
add_header Cache-Control "public";
}
# force download for ceratain file types
location ~* \.(?:fb2|mobi|mp3)$ {
add_header Content-Disposition "attachment";
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题在于 .mp3 文件与两个位置块都匹配。仅使用第一个 (max-age)。我怎样才能同时拥有 .mp3 文件 - max-age和Content-Disposition “附件”?
我在文件中有如下内容。
dataDir=/var/lib/zookeeper
4lw.commands.whitelist=mntr,conf,ruok,stat
syncLimit=2
Run Code Online (Sandbox Code Playgroud)
我想使用 Ansible读取dataDir的值并将其设置为变量。我已经编写了以下代码,但是正则表达式和存储变量都有一些问题。
- name: Read zoo.cfg content
shell:
cmd: cat zoo.cfg
register: zoo_config_content
- set_fact:
my_var: "{{ zoo_config_content.stdout | regex_search('dataDir.*')}}"
- name: Print
debug:
var: my_var
Run Code Online (Sandbox Code Playgroud)
Q1.) 如何改进正则表达式以仅获取/var/lib/zookeeper?
Q2.) 如何存储提取的值以在另一个任务中使用?
我有一个脚本,它在文件中找到一个字符串并将其替换为一个新字符串。
$ sed -i 's/$old_string'/'$new_string'/g' $FILENAME
Run Code Online (Sandbox Code Playgroud)
现在我需要条件是一个正则表达式,它还检查旧字符串后面是否有除数字以外的任何内容。
我试过这个,但没有用:
$ sed -i -r 's/$old_string(^[0-9])+/$new_string/g' $FILENAME
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我在尝试使以下配置工作时遇到问题。每次我运行配置测试时,我都会失败。首先让我向您展示一个工作配置
location / { if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)"){ return 403; } }
但是当我尝试变得有点聪明并将它放在地图块中时,我得到了一个错误
map $query_string $edgars_access_denied { default "200"; ~mosConfig_[a-zA-Z_]{1,21}(=|\%3D) "403"; }
我正在将我的网站迁移到另一个平台,但是当我完成新网站的所有页面的开发时,我需要我的用户在这两个平台之间导航。
因此,我需要对包含 1 个特定单词但不包含其他单词的所有 URL 进行 301 重定向:
例子:
我需要重定向所有包含“www2.misite.com/travel(.*)”但不包含“reservation”和“hotel”一词的 URL。
我的服务器是Nginx,不知道是用正则表达式还是用nginx语句完成的。
非常感谢。
我刚刚开始尝试使用 postfix 重写发件人地址。debian-7.11我用和运行服务器postfix-2.9.6。
内容/etc/postfix/main.cf:
[...]
smtp_generic_maps = hash:/etc/postfix/generic
[...]
Run Code Online (Sandbox Code Playgroud)
内容/etc/postfix/generic:
santiago@uranus.caoba.fr santiago.uranus.caoba.fr@caoba-mail.fr
auguste@uranus.caoba.fr auguste.uranus.caoba.fr@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
到目前为止它有效。当用户santiago发送电子邮件时,它会按照santiago.uranus.caoba.fr@caoba-mail.fr我想要的方式发送。
我的问题是我希望任何用户都可以执行此重写,而不必向/etc/postfix/generic. 所以我想知道是否可以通过某种正则表达式来完成,例如:
(.*)@$hostname $1.$hostname@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
感谢您的帮助
圣地亚哥
我有一堆名称为 srv1.domain.com、srv2.domain.com、...、srv50.domain.com 的服务器
我希望能够通过以下方式连接到这些服务器 ssh srv1
我不想将 50 个配置条目放到我的 .ssh/config 中,例如
HOST srv1
HOSTNAME srv1.domain.com
USER amac
IdentityFile /home/amac/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我喜欢的是正则表达式匹配,它允许我写一些类似的东西
HOSTNAME (srv[0-9]*).domain.com
HOST \1
USER amac
IdentityFile /home/amac/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
这可能吗?也许通过创建一个 bash 别名将“srv(.*)”的所有实例转换为 srv\1.domain.com,其中 \1 对应于正则表达式匹配的括号中的子字符串?
谢谢。
该HttpMapModule文件指出:
从 1.0.4 开始,可以通过在模式前加上 ~* 来使用不区分大小写的正则表达式。
并举例:
map $uri $myvalue {
/aa /mapped_aa;
~^/aa/(?<suffix>.*)$ $suffix;
}
Run Code Online (Sandbox Code Playgroud)
我更新为nginx/1.2.7使用它,并且天真的正则表达式可以正常工作,但变量却不能。当我尝试上述语法时,出现错误:
nginx: [emerg] pcre_compile() failed: unrecognized character after (?< in "^/aa/(?<suffix>.*)$" at "suffix>.*)$"
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下语法,但都没有奏效:
~^(.*)$ $1;
~^(.*)$ \1;
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作。
有谁知道如何让变量在 HttpMapModule 中的正则表达式中工作?
我有一个 .xml 文件。里面的标签是:
<Info>Product</Info>
Run Code Online (Sandbox Code Playgroud)
现在,我在文件中有 20 000 个这样的标签。然而,一个标签可以正常启动,但缺少正确的结束标签。如何找到哪一行正确开始但没有以正确的标签结束?
谢谢。
是否有使用 find 命令清除所有“.log”文件内容的简单步骤 。
目前我正在使用“echo -n > filename.log”我试过 echo -n > /var/application-logs/*.log 但它不起作用..
有没有更好的方法来清除多个文件的内容?
nginx ×4
regex ×4
bash ×3
ansible ×1
centos ×1
grep ×1
http-headers ×1
linux ×1
postfix ×1
rewritemap ×1
scripting ×1
sed ×1
shell ×1
ssh ×1
unix-shell ×1