Perl Oozie日志的模式匹配
使用了Oozie命令Perl Oozie日志的模式匹配,perl,bash,unix,hadoop,oozie,Perl,Bash,Unix,Hadoop,Oozie,使用了Oozie命令 oozie jobs -oozie http://localhost:11000/oozie -localtime | grep "2013-05-08" > Input.txt Oozie日志(Input.txt) 我想要一个额外的列作为“Status”,它将状态消息存储为“SUCCESS/RUNNING/KILLED/SUSPENDED/Prep” 我们将从第二列获得状态“消息,如 我无法从上面的文本中猜出分隔符。因此,我们可以使用AWK/cut/substri
oozie jobs -oozie http://localhost:11000/oozie -localtime | grep "2013-05-08" > Input.txt
Oozie日志(Input.txt)
我想要一个额外的列作为“Status”,它将状态消息存储为“SUCCESS/RUNNING/KILLED/SUSPENDED/Prep”
我们将从第二列获得状态“消息,如
我无法从上面的文本中猜出分隔符。因此,我们可以使用AWK/cut/substring概念
Status messages are static . Job names are dynamic.
将出现4条状态消息
- 成功
- 运行
- 准备
- 杀死
- 暂停
61-oozie DPro chronicles users 2013-05-08 04:47 2013-05-08 04:53 SUCCEEDED
61-oozie DP chronicles users 2013-05-08 04:47 - RUNNING
61-oozie DProcess chronicles users 2013-05-08 04:42 2013-05-08 04:48 Suspended
61-oozie D chronicles users 2013-05-08 04:07 2013-05-08 04:09 KILLED
i、 e.前状态、状态、后状态->前状态、后状态、状态
由于输入和所需输出的状态之间似乎存在差异,例如“ProcessSuspended”in和“SUSPENDED”out,因此您可能还希望交换这些状态:
sed 's/(\w+)(SUCCEEDED|RUNNING|Prep|KILLED|SUSPENDED)(\s+.+)$/\1\3 \2/g' | sed 's/ProcessSuspended$/SUSPENDED/g'
或者使用Perl进行查找
i、 e.前状态、状态、后状态->前状态、后状态、状态
由于输入和所需输出的状态之间似乎存在差异,例如“ProcessSuspended”in和“SUSPENDED”out,因此您可能还希望交换这些状态:
sed 's/(\w+)(SUCCEEDED|RUNNING|Prep|KILLED|SUSPENDED)(\s+.+)$/\1\3 \2/g' | sed 's/ProcessSuspended$/SUSPENDED/g'
或者使用Perl进行查找。提取所需状态并将其放在行的末尾
perl -pe 's/\B(succeeded|running|suspended|killed|prep)//i and $w=$1 and s/$/ $w/' file
提取所需状态并将其放在行的末尾
perl -pe 's/\B(succeeded|running|suspended|killed|prep)//i and $w=$1 and s/$/ $w/' file