Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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_Perl - Fatal编程技术网

Regex 如何从日志文件中提取所需内容?

Regex 如何从日志文件中提取所需内容?,regex,perl,Regex,Perl,假设我有一个日志文件,其格式如下: 02-02 23:55:41.481 2050 21652 D [LOGGRAB]: [CPU temp average]: 60.98750352859497 我希望我的输出为=> "02-02" "23:55:41.481" "2050" "21652" "D" "LOGGRAB" "CPU temp average&qu

假设我有一个日志文件,其格式如下:

02-02 23:55:41.481  2050 21652 D [LOGGRAB]: [CPU temp average]: 60.98750352859497
我希望我的输出为=>

"02-02" "23:55:41.481"  "2050" "21652" "D" "LOGGRAB" "CPU temp average" "60.98750352859497"
有什么方法可以实现我的目标吗?
提前谢谢。

不难,试试这个

echo "02-02 23:55:41.481 2050 21652 D [LOGGRAB]: [CPU temp average]: 60.98750352859497" | perl -lpe 's/\[(.*?)\]:|([\S]+)/"\1\2"/g;'
输出:

“02-02”“23:55:41.481”“2050”“21652”“D”“LOGGRAB”“CPU平均温度” “60.98750352859497”


这是一个很好的起点。欢迎来到StackOverflow!虽然我们很乐意帮助解决特定的编码问题,但请注意,我们不是来为您编写脚本的。我建议您看一看好的Perl教程(或者,如果您已经知道了基础知识,那么negacao发布的链接非常好),自己试一试。如果您尝试了,但在脚本的某些特定部分遇到了问题,请随时回来询问有关问题。另请参见范围内的问题类型。祝你好运有什么方法可以实现我的目标吗?答案是“是的,有”。第一个问题是,你为什么需要它?第二个问题是使用Perl正则表达式实现目标时遇到了什么问题?