我有一个类型的长文件
Processin SCRIPT10 file.. Submitted batch job 1715572 Processin SCRIPT100 file.. Processin SCRIPT1000 file.. Submitted batch job 1715574 Processin SCRIPT10000 file.. Processin SCRIPT10001 file.. Processin SCRIPT10002 file.. Submitted batch job 1715577 Processin SCRIPT10003 file.. Submitted batch job 1715578 Processin SCRIPT10004 file.. Submitted batch job 1715579
我想找出未提交的作业(脚本名称).这意味着在处理线之后没有线提交批处理作业.
到目前为止,我已尝试使用
pcregrep -M "Processin.*\n.*Processin" execScripts2.log | awk 'NR % 2 == 0'
但是当多个脚本没有得到处理时,它无法正确处理这种情况.令人惊讶的是,它仅输出SCRIPT1000和SCRIPT10001线.你能告诉我一个更好的单班车吗?
理想情况下,输出将只是下一行(或只是脚本名称)上没有“已提交”的行,这意味着:
SCRIPT100 SCRIPT10000 SCRIPT10001
谢谢.
这个awk可以完成这项工作:
awk -v s='Submitted' '$1 != s{if(p != "") print p; p=$2} $1 == s{p=""}' file SCRIPT100 SCRIPT10000 SCRIPT10001
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。