Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 什么正则表达式可以达到这一要求?_Regex_Unix_Grep - Fatal编程技术网

Regex 什么正则表达式可以达到这一要求?

Regex 什么正则表达式可以达到这一要求?,regex,unix,grep,Regex,Unix,Grep,正则表达式将如何实现这一点(似乎不太明白): 注: 请注意,方括号中的数字可能会随着时间的推移而变化 将在Mac终端中作为“grep”的一部分使用(即实时在日志文件上进行grep输出) 输入: Jul 19 07:32:19 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b5df900 10 nil began Jul 19 07:32:19 iPhone CoronaViewer[4043] <Warning&g

正则表达式将如何实现这一点(似乎不太明白):

注:

  • 请注意,方括号中的数字可能会随着时间的推移而变化
  • 将在Mac终端中作为“grep”的一部分使用(即实时在日志文件上进行grep输出)
输入:

Jul 19 07:32:19 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b5df900   10  nil began
Jul 19 07:32:19 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b5df900   10  nil ended/cancelled
Jul 19 07:32:19 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b544ff0   10  nil began
Jul 19 07:32:20 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b544ff0   10  nil ended/cancelled
Jul 19 07:34:00 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b549270   10  nil began
Jul 19 07:34:00 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b549270   10  nil ended/cancelled
Jul 19 07:34:02 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b33ab50   10  nil began
Jul 19 07:34:02 iPhone CoronaViewer[4043] <Warning>: userdata: 0x1b33ab50   10  nil ended/cancelled
Jul 19 07:32:19 iPhone CoronalViewer[4043]:用户数据:0x1b5df900 10零开始
7月19日07:32:19 iPhone CoronalViewer[4043]:用户数据:0x1b5df900 10无结束/取消
7月19日07:32:19 iPhone CoronalViewer[4043]:用户数据:0x1b544ff0 10零开始
7月19日07:32:20 iPhone CoronalViewer[4043]:用户数据:0x1b544ff0 10无结束/取消
7月19日07:34:00 iPhone CoronalViewer[4043]:用户数据:0x1b549270 10零开始
7月19日07:34:00 iPhone CoronalViewer[4043]:用户数据:0x1b549270 10无结束/取消
7月19日07:34:02 iPhone CoronalViewer[4043]:用户数据:0x1B33B50 10零开始
7月19日07:34:02 iPhone CoronalViewer[4043]:用户数据:0x1B33B50 10无结束/取消
所需输出

<Warning>: userdata: 0x1b5df900 10  nil began
<Warning>: userdata: 0x1b5df900 10  nil ended/cancelled
<Warning>: userdata: 0x1b544ff0 10  nil began
<Warning>: userdata: 0x1b544ff0 10  nil ended/cancelled
<Warning>: userdata: 0x1b549270 10  nil began
<Warning>: userdata: 0x1b549270 10  nil ended/cancelled
<Warning>: userdata: 0x1b33ab50 10  nil began
<Warning>: userdata: 0x1b33ab50 10  nil ended/cancelled
:用户数据:0x1b5df900 10零开始
:userdata:0x1b5df900 10无结束/取消
:userdata:0x1b544ff0 10零开始
:userdata:0x1b544ff0 10无结束/取消
:userdata:0x1b549270 10零开始
:userdata:0x1b549270 10无结束/取消
:userdata:0x1B33B50 10零开始
:userdata:0x1B33B50 10无结束/取消

grep-oP”(?
grep-oP)(?以下是使用
sed
的答案:

sed 's/[^<]*\(<.*\)/\1/' filename

下面是使用
sed
的答案:

sed 's/[^<]*\(<.*\)/\1/' filename
编辑 在Mac上,您可以使用以下选项:

perl -nle 'print $1 if /\] *(.*)/' file
如果必须在“CoronalViewer”之后

perl -nle 'print $1 if /CoronaViewer\[[0-9]+\] *(.*)/' file
编辑 在Mac上,您可以使用以下选项:

perl -nle 'print $1 if /\] *(.*)/' file
如果必须在“CoronalViewer”之后

perl -nle 'print $1 if /CoronaViewer\[[0-9]+\] *(.*)/' file

在Mac上,以下
awk
应执行此任务:

awk -F'CoronaViewer\[[0-9]+\] *' '/CoronaViewer\[[0-9]+\]/{print $2}' file
<Warning>: userdata: 0x1b5df900   10  nil began
<Warning>: userdata: 0x1b5df900   10  nil ended/cancelled
<Warning>: userdata: 0x1b544ff0   10  nil began
<Warning>: userdata: 0x1b544ff0   10  nil ended/cancelled
<Warning>: userdata: 0x1b549270   10  nil began
<Warning>: userdata: 0x1b549270   10  nil ended/cancelled
<Warning>: userdata: 0x1b33ab50   10  nil began
<Warning>: userdata: 0x1b33ab50   10  nil ended/cancelled

在Mac上,以下
awk
应执行此任务:

awk -F'CoronaViewer\[[0-9]+\] *' '/CoronaViewer\[[0-9]+\]/{print $2}' file
<Warning>: userdata: 0x1b5df900   10  nil began
<Warning>: userdata: 0x1b5df900   10  nil ended/cancelled
<Warning>: userdata: 0x1b544ff0   10  nil began
<Warning>: userdata: 0x1b544ff0   10  nil ended/cancelled
<Warning>: userdata: 0x1b549270   10  nil began
<Warning>: userdata: 0x1b549270   10  nil ended/cancelled
<Warning>: userdata: 0x1b33ab50   10  nil began
<Warning>: userdata: 0x1b33ab50   10  nil ended/cancelled

awk
应能:

awk '{sub(/.*\] /,"")}1' file
<Warning>: userdata: 0x1b5df900   10  nil began
<Warning>: userdata: 0x1b5df900   10  nil ended/cancelled
<Warning>: userdata: 0x1b544ff0   10  nil began
<Warning>: userdata: 0x1b544ff0   10  nil ended/cancelled
<Warning>: userdata: 0x1b549270   10  nil began
<Warning>: userdata: 0x1b549270   10  nil ended/cancelled
<Warning>: userdata: 0x1b33ab50   10  nil began
<Warning>: userdata: 0x1b33ab50   10  nil ended/cancelled

awk
应能:

awk '{sub(/.*\] /,"")}1' file
<Warning>: userdata: 0x1b5df900   10  nil began
<Warning>: userdata: 0x1b5df900   10  nil ended/cancelled
<Warning>: userdata: 0x1b544ff0   10  nil began
<Warning>: userdata: 0x1b544ff0   10  nil ended/cancelled
<Warning>: userdata: 0x1b549270   10  nil began
<Warning>: userdata: 0x1b549270   10  nil ended/cancelled
<Warning>: userdata: 0x1b33ab50   10  nil began
<Warning>: userdata: 0x1b33ab50   10  nil ended/cancelled


因此,您需要从
到字符串结尾的所有内容?实际上,在“CoronaView”之后的最后一个“]”之后的所有内容,因为这之后的文本可能会更改(例如可能是错误而不是警告),所以您需要从
到字符串结尾的所有内容?在“CoronaView”之后的最后一个“]”之后的所有内容实际上,由于这之后的文本可能会发生变化(例如可能是一个错误而不是警告),Hi Adam,我在mac上运行时得到了这个结果。用法:grep[-abcdefghhijllmnoopqrsussvwxz][A num][B num][C[num][-e pattern][f file][--二进制文件=值][--color=when][--上下文[=num][--目录=操作][--标签][--行缓冲][--null][pattern][file…]@Greg我没有mac电脑可以测试,所以我不知道为什么,对不起。据我所知,这应该可以在任何支持
grep
的机器上运行。嗨,亚当,我在mac电脑上运行时就知道了。用法:grep[-abcdefghhijllmnoopqrsusuvwxz][a num B num C[num]][-e pattern][f file][--binary files=value][--color=when][--context[=num][--directories=action][--label][--line buffered][--null][pattern][file…]@Greg我没有mac可供测试,所以我不知道为什么会这样,对不起。据我所知,这应该适用于任何支持
grep
的机器。在mac上运行此操作时,我似乎遇到了一个使用错误。我使用了:cat main.lua | grep-Po'^..\Ksorry-也在OP中进行了澄清:以及更多,在最终“]”之后的所有操作中都进行了说明“CoronaView”是真的,因为这之后的文本可能会改变(例如可能是一个错误而不是警告),我在Mac上运行它时似乎遇到了一个使用错误。我使用了:cat main.lua | grep-Po'^.....*\Ksorry-也在OP中澄清了:“CoronaView”之后的最后“]”之后的所有内容,因为这之后的文本可能会改变(可能是一个错误而不是警告)抱歉,在OP中也进行了澄清:“CoronaView”之后的最后一个“]”之后是Evertiing,因为这之后的文本可能会改变(例如可能是一个错误而不是警告),这真的很接近anubhava-它正在工作,除了不匹配的行似乎作为空行出现(而不是什么都没有通过)-这对你有意义吗?现在检查更新的代码。现在不会打印不匹配的行。+1代表awk fu,我真的很喜欢顶部的
grep-oP
。我知道这是一个OSX问题,但如果有人感兴趣,Win上的等效代码将是
pcregremp
对不起,在oP中也会澄清:更重要的是,在决赛结束后再打“]“CoronaView”之后的文字可能会发生变化(例如,可能是错误而不是警告),这与anubhava非常接近-它起作用了,只是不匹配的行看起来像是空白行(而不是什么都没有通过)-这对你有意义吗?现在检查更新的代码。现在不会打印不匹配的行。+1代表awk fu,我真的很喜欢顶部的
grep-oP
。我知道这是一个OSX问题,但如果有人感兴趣,Win上的等效代码将是
pcregremp
谢谢-在我的用法中似乎没有起作用/返回任何东西:ideviceslog|grep的/[^No,你应该使用
sed
而不是
grep
。它应该可以工作。谢谢-在我的使用中似乎没有工作/返回任何东西:ideviceslog | grep的/[^No,你应该使用
sed
而不是
grep
。它应该可以工作。