Articles of 正则expression式

parsingApache错误日志中的唯一错误

我有一些unruly的apache错误日志,我想parsing并得到唯一的错误。 [Fri Sep 21 06:54:24 2012] [error] [client xxx.xxx.xxx.xxx ] PHP Fatal error: <error message>, referrer: <url> 我想我只是想在“PHP致命”部分切断线路,丢弃前半部分并通过uniq运行下半部分。 我的目标是识别所有的错误,但是由于许多重复的错误,需要手动查看每条错误。 什么是完成这个最好的方法?

尝试匹配一个string,并将其添加到replace

我试图添加一个string到一个使用sed和正则expression式的行的结尾。 我有以下string: disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, 和即时尝试添加到它的string的结尾: exec,system,shell_exec,passthru, 我的尝试如下: sed -ie 's/disable_functions = .*[a-zA-z,]$/disable_functions = $1exec,system,shell_exec,passthru,/gI' /etc/php5/apache2/php.ini 它似乎只是增加$ 1到stringdisable_functions = $ 1exec,系统,shell_exec,passthru, 我哪里错了?

sed替代非贪婪的search

那么,我知道sed不支持非贪婪的search,但有可能是一个聪明的正则expression式来取代以下 VARIABLE=" text1 text2 text3 " 同 VARIABLE=" Atext1 Atext2 Atext3 " 现在我只能replace第一场比赛。

如何在单词(正则expression式,grep)之后停止search?

嗨,我想停止search,一旦我到了这个词的结尾。 例如: ls -al | grep adh 这就是我的search…我想停止“h” 我正在search的目录有adh两个实例,有adh2和adh …我只是想adh不adh2 ! 希望这是有道理的,任何问题,请问:) 仅供参考我是Linux / perl初学者!

使用正则expression式检查范围

我已经做了一个帮助函数,以确定是否指定的长度来生成密码是有效的。 如何有条件地使用正则expression式来检查8-64的范围? # Check to see if password length is valid # @param $1 length specified by the user # @return True (0) if not valid, False (1) if we're okay # Usage: if is_valid "$length" is_valid() { local length="$1" if (( "$length" < 8 || "$length" > 64 )); then return 0 else return […]

正则expression式比较来自多个文件的string

我有多个包含各种string的XML文件。 我也有一个string的文本文件,其中一些包含在XML文件中。 XML: text="$$sRegister $$s is stuck at One. (VDB-5014)" uid="5014"/> string文件: is stuck at one 我想打印在我的string文件和我的XML文件中的string。 这样我可以在XML文件中设置正确的消息types。 鉴于我一直试图自动执行此过程的大量消息。 思考?

如何查找名称中包含换行符的文件

有很多关于正确处理包含像换行符之类的奇怪符号的文件名。 我认为使用IFS设置为换行符将解决问题,除非明显的情况下,如果一个名称与换行符。 所以作为一种防御手段,脚本可以首先检查一个子树是否至less有一个带有换行符的文件,并停留一条消息来首先修复这个名称。 令人惊讶的是,我无法通过-regex匹配find这样做。 只有成功的方式是相当丑陋的 find . -name "*"$'\n'"*" 但是,例如find . -regex ".*\n.*" find . -regex ".*\n.*"不起作用。 Emacs的正则​​expression式应该允许像\ n这样的转义字符,不是吗? 有趣的是,它与名称中的字符n匹配的另一个文件。 使用不同的-regextypes进行实验,只是发现awk sed posix-extendedtypes,另外一些则会使用换行符来匹配文件(比如a\nxxx ),另外它们也会将文件与字符n匹配。 奇怪的。 另一方面,GNU查找文档并不会告诉任何有关\n等转义字符的支持。 他们真的不被支持,所以我们不能在查找正则expression式中使用\t \n \r \a和类似的东西吗?

删除重复的文件扩展名

我有成千上万的文件名称,如filename.gz.gz.gz.gz.gz.gz.gz.gz.gz.gz.gz.gz.gz 我正在使用这个find命令find . -name "*.gz*" find . -name "*.gz*"来定位这些文件,或者使用-exec或者pipe到xargs并且有一些神奇的命令来清理这个混乱,所以我最终得到了filename.gz 有人请帮我拿出这个神奇的命令,将删除不需要的.gz实例。 我尝试过使用sed 's/\.gz//'和sed 's/(\.gz)//'但是它们似乎并不工作(或者说比较诚实,我对sed不是很熟悉) 。 我不用sed的方式,任何解决scheme,将有助于解决这个问题将是值得欢迎的:-)

如何在linux / unix文件的特定行中删除逗号

有人试图帮助他们的testing描述。 但是,他们在描述中添加了逗号,所以当testing描述输出到日志文件时,结果会有额外的逗号。 由于结果文件中逗号的数量不同,这使得parsing结果变得困难。 我想使用sed,并进入testing文件从描述中删除逗号,所以我们不会再被困在屁股了,但我不知道正则expression式应该是什么样子,因为我需要保留一切,删除逗号。 该行来自jmeter jmx文件。 以下是一些示例行: 1个逗号 HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avgRespTime inst = green, 12 hr" enabled="true"> 2个逗号 HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avgRespTime, inst = network, 2 days" enabled="true"> 有人可以给我一个关于如何search这条线,并删除逗号,同时保持一切完整的提示吗? 提前感谢您的帮助,可以给我。 编辑:在jmx文件中可能还有其他行也包含一个逗号,所以我不能盲目地说出类似于: sed -i 's/,//g' file.jmx

egrep不删除特殊字符

我有一个egrep的问题,似乎忽略像!@#%这样的特殊字符。 目标是删除多于3个完全相同的字符的行。 字符不需要每个都是。 111!!!qqq! #should be removed because has 4 '!' !1!1!opop #is fine 这是我正在使用的是: cat file1.txt | egrep -vi "^(.*)(.{3,})(.*)\2(.*)$" > file2.txt 它适用于非特殊字符,但它不会像!!!qwqwqwq! 。 提前致谢。