Articles of 正则expression式

试图只删除非ASCII字符

我试图操纵一个文本文件,并从文本中删除非ASCII字符。 我不想删除该行。 我只想删除有问题的字符。 我正试图让下面的expression式工作: sed '/[\x80-\xFF]/d'

Magento从旧的Urlredirect到具有存储(语言)代码的新Url

说明: 我设置了像这样的商店configurationMagento: 公司名称 – Webside 总店 – 商店 zh – 存储视图 dk – 存储视图 我的链接如下所示: https : //my-company.com/shop/ 然后我重新认识到这是我的需求错误的configuration,我不得不改变 英文 – Webside 总店 – 商店 zh – 存储视图 丹麦 – Webside 总店 – 商店 dk – 存储视图 另外 ,我启用了 Magentofunction“ 添加商店代码到Urls ”,这是以前禁用。 现在我的链接看起来像: https : //my-company.com/ en / shop / 问题: 由于我已经做了网站地图,而没有作出改变,并提交给WebMasters,现在我面临的问题是,没有存储代码在URL中的所有旧链接不再工作(404代码 – 未find)。 由于WebMaster和其他原因,我真的很想实现这个结果: […]

如何查找名称中带有方括号的文件

我试图find一些方括号的文件,但我似乎无法得到它的工作。 我的文件命名是这样的: [ABC]testingfile.txt 正则expression式我试着: find . -iregex '\[abc\].*test.*' 这似乎不工作出于某种原因。 如果我把它replace – find . -iregex '.*abc.*test.*' – 它工作正常。 所以问题在于方括号。 有任何想法吗?

为什么“script”命令会生成^ [和^ M个字符,以及如何使用vimsearch和replace它们?

在Linux上,使用bash shell,当我使用脚本命令时,生成的文件被称为打字稿。 当我用vim打开这个文件时,每一行都包含^ M字符,并且有几行(由于我的彩色命令提示符)包含一个字符^ [ 。 我想用什么都replace这些字符,有效地从生成的脚本中删除它们。 首先,我试过:%s/^[//gc , :%s/\^[//gc , :%s/\^\[//gc和其他一些变体。 没有一个匹配^ [字符,所以search/replace不起作用。 我也尝试了所有这些与^ M字符相同的结果。 一些谷歌search后,我发现^ M字符是真正的回车“\ r”。 所以然后我试过:%s/\\r//gc ,这对^ M字符有效! 我search了一些,试图找出^ [字符是什么,但没有发现任何帮助。 2个问题 : 1)什么是[字符,什么是适当的正则expression式在vim中使用来search和replace它? 2)为什么在linux上使用脚本命令时,生成的脚本在行尾产生^ M ? 这使得我认为linux脚本命令正在生成CRLF eol字符,而不仅仅是LF eol字符。

正则expression式的Linux文件权限(数字符号)

我不能为我的生活找出适当的正则expression式。 我正在寻找的是一个正则expression式来匹配Linux文件权限的有效数字表示(例如,740为全读取无,777为全部)。 到目前为止我已经尝试了以下内容: strtotest=740 echo "$strtotest" | grep -q "[(0|1|2|3|4|5|7){3}]" if [ $? -eq 0 ]; then echo "found it" fi 上面的问题是正则expression式匹配1-5或7任何东西,不pipe其他字符。 例如,如果strtotest直接的被改为709 ,则条件是成立的。 我也试过[0|1|2|3|4|5|7{3}]和[(0|1|2|3|4|5|7{3})]以及。 是我正在使用的正则expression式错了,还是我错过了一些必须处理的grep ?

如何在文件夹中的XML文件中grep一个单词

我知道我可以使用grep来查找文件夹中存在的所有文件中的单词 grep -rn core . 但我目前的目录有许多子目录,我只想search当前目录及其所有子目录中存在的所有XML文件 。 我怎样才能做到这一点 ? 我试过这个 grep -rn core *.xml // Does not work 但它仅search当前目录中的xml文件。 这不是recursion的。

从string中提取分辨率

我有以下string stream#0:0(eng):video:h264(约束基线)(avc1 / 0x31637661),yuv420p,1280×720 [SAR 1:1 DAR16:9],5238kb / s,29.97fps,29.97tbr,30ktbn, 58 tbc 我试图提取1280×720 , 我用了 sed -r 's/.+([0-9]{3,5})x([0-9]{3,5}).+/\1x\2/' 但它只会返回280×720 。

用反向引用在两个模式之间加上所有行

我正在做一个简单的脚本,以预先匹配匹配之间所有行的模式匹配的一部分。 例如: matchline_VAR name1 xxx yyy zzz name2 aaa bbb ccc matchline_VAR 需要成为(如果简单删除matchlines,如果不是我可以后处理删除它们): VAR_name1 xxx yyy zzz VAR_name2 aaa bbb ccc 现在我正在尝试像这样: sed '/matchline_\(.*$\)/,/matchline_/ {s/^/\1_/g}' 而是在行前打印1。 也许我还应该提到,这是一个更大脚本的一部分,用于search文本文件,并用另一个shellvariables$ replace(多行)replaceshellvariables$ find(一行)的每个实例。 目前的解决scheme是: awk -v find="$find" -v replace="$replace" '$0==find{$0=replace}1' file 问题是,我需要将$ find的第一个字段追加到$ replace的每一行我试过: awk -v find="$find" -v replace="$replace" '$0==find{$0="matchline_" $1 "_" replace}1' 但是它只在多行$ replace的开头附加名称。 任何帮助表示赞赏, 约翰

fail2ban定期在nginx中查找403请求

我想查找403个请求并禁止他们,这里是我的日志格式 112.253.6.182 – – [08/Sep/2014:17:42:56 -0400] "GET / HTTP/1.1" 403 579 "baidu" "Mozilla/4.0" 50.117.86.72 106.37.177.251 – – [08/Sep/2014:17:42:56 -0400] "GET /index.php HTTP/1.1" 404 576 "baidu" "Mozilla/4.0" 204.44.65.173 190.254.173.14 – – [08/Sep/2014:17:42:56 -0400] "GET /index.php HTTP/1.1" 404 576 "baidu" "Mozilla/4.0" 204.44.65.173 41.222.196.37 – – [08/Sep/2014:17:42:56 -0400] "GET / HTTP/1.1" 403 579 "baidu" "Mozilla/4.0" 50.117.86.72 我的failreg是: failregex […]

意想不到的EOF,而寻找匹配的'''

#!/usr/bin/perl use warnings; while(1){ system ( "dialog –menu Customize 30 80 60 " . "'Show rules' 'Show all the current rules' " . "'Flush rules' 'Flush all the tables' " . "Allow IP' 'Block all except one IP' " . "'Block IP' 'Block all the packets from an IP' " . "'Block MAC' 'Block using […]