什么bash命令可以用于pipe道上的正则expression式replace? cat foo.txt | someprogram
我只需要从正则expression式中获得匹配: $ cat myfile.txt | SOMETHING_HERE "/(\w).+/" 输出只能是括号内的匹配项。 不要以为我可以使用grep,因为它匹配整条线。 请让我知道如何做到这一点。
所以我今天configuration了nginx,并且遇到了一个奇怪的问题。 我试图匹配这样一个位置: location ~ ^/([0-9]+)/(.*) { # do proxy redirects } …为像“ http://my.domain.com/0001/index.html ”的url。 这个规则从来没有匹配,尽pipe事实上这是所有的权利。 根据这个文档 ,我花了一段时间才弄清楚正则expression式中的一些字符需要引用。 问题是,文档是重写的,它专门调用大括号,而不是方括号。 经过一些涉及大量脏话的实验之后,我发现我可以通过引用正则expression式来解决这个问题: location ~ "^/([0-9]+)/(.*)" { # do proxy redirects } 有没有一个列表中的字符nginx需要引用正则expression式? 还是会有其他的事情在这里,我完全失踪? 这是我的第一个nginxconfiguration工作,所以很可能我误解了一些东西。
如果我想将规则应用于apache2.conf中的某些文件,我可以使用<FilesMatch>。 例如: <FilesMatch ".(gif|jpg|jpeg|png|mpg|avi)$"> deny from env=hotlink </FilesMatch> 但是与FilesMatch相反,即FilesNotMatch? 我想要达到的是: <FilesMatch ".(gif|jpg|jpeg|png|mpg|avi)$"> <FilesNotMatch "ban"> deny from env=hotlink </FilesNotMatch> </FilesMatch> (否认盗链服务器上的所有图像但横幅) 或者你有什么build议我可以修改我的正则expression式不匹配任何包含“禁令”?
我有一个简单的问题,但我找不到或解决答案。 我想做一个tar归档文件,但我想用正则expression式从它中排除一些文件。 要排除的文件的示例是这样的: 68x640X480.jpg 我已经试过这个没有运气: tar cvf test.tar –exclude=[0-9]+x[0-9X]+\.jpg /data/foto 任何人都可以帮忙吗?
Nginx的configuration我已经抛出了404的.php像: ## Any other attempt to access PHP files returns a 404. location ~* ^.+\.php$ { return 404; } 不过,我想要运行子文件夹中的一些index.php文件。 目前的configuration如下所示: location = /sitename/subpage/index.php { fastcgi_pass phpcgi; #where phpcgi is defined to serve the php files } location = /sitename/subpage2/index.php { fastcgi_pass phpcgi; } location = /sitename/subpage3/index.php { fastcgi_pass phpcgi; } 它完美的工作,但问题是重复的位置,如果有很多的子页面,那么configuration变得巨大。 我试图通配符*和一些正则expression式,它说nginxtesting通过,但不加载页面,即404。我试过的是: location = […]
我知道 ps ax 返回pid 1 ? Ss 0:01 /sbin/init 2 ? S< 0:00 [kthreadd] 3 ? S< 0:00 [migration/0] 我只需要清理这些string,但是我不能用sed来完成,因为我无法写出正确的正则expression式。 你可以帮帮我吗?
我想要的url http://www.example.com redirect到 http://www.example.com/something/else 这是因为一些不可思议的WP插件总是在基础url上设置一个cookie,这不允许我caching它。 我试过这个指令: location / { rewrite ^ /something/else break; } 但1)没有redirect和2)页面开始向我的服务器发送超过1000个请求。 有了这个: location / { rewrite ^ http://www.example.com/something/else break; } Chrome报告一个redirect循环。 什么是正确的正则expression式使用?
好吧,一个示例url http://www.mysite.com/?p=account&view=settings 普里是一个常数。 所有的url都有。 该view是许多可选的uri之一。 我试图了解URL重写和正则expression式,但我只是没有得到它。 我需要回到编写代码,但不幸的是,我只是不断回到nginx.conf ,以获得更多的惩罚。 我的目标是重写url为: http://www.mysite.com/account/view/settings 我会告诉你我尝试过的东西,但是它只是复制和粘贴了很多以前的例子,certificate了我正在掌握正则expression式和URL重写的概念。 如果有人可以花几分钟来解释正则expression式部分,或者链接到一个很好的教程了解它,我将不胜感激。 不,我不指望你为我做这个工作,但是我虚心地请求一点帮助,把握重写的概念以及在nginx conf中使用的variables。 我可以看到一个叫做$uri ,但是不知道它是什么意思。 我还需要添加一个正则expression式来拒绝在/socket和/private的PHP脚本的直接访问,但允许通过Ajax的访问。 我敢肯定,我可以将任何有关正则expression式的知识应用于这个任务。 我的nginx conf的位置块 location ~ \.(hh|php)$ { fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* .(png|gif|ico|css|js)$ { expires 365d; } location ~ .(aspx|jsp|cgi)$ { return 410; } location /socket { return 405; […]
我有一个很长的领域,所以我决定把它改为更短,更友好的。 但是由于我有很多子域(实际上,我有一个子域通配符),我想保留子域而只更改域的一部分。 所以,我做了以下规则: server { listen 80; server_name ~^(\w+)\.olddomain\.com$; rewrite ^ $scheme://$1.doma.in$request_uri? permanent; } 我已经阅读了很多其他的问题,这段代码解决了这个问题。 但对我来说,Nginx总是redirect到.domain.in ,没有任何子域名。 我错过了什么? 我已经testing了正则expression式对regex101和例子工作正常,Nginx似乎无法redirect。