try 仅当"Log"行后面的文本中出现"ref1"时才打印"Log"行

示例文本:

Log 0102
............
.....ref1.......
......ref1....
Log 0103
............
.....ref1.......
....
Log 0104
............
.....ref2.......
......

预期结果:

Log 0102
Log 0103

我得到的结果是:

Log 0102
Log 0102
Log 0103

我try 了这个awk命令,但没有得到结果:

awk '/Log*/ line =$0}/ref1/{print line}'

推荐答案

与您展示的样本,请try 以下awk个代码.

awk '
/^Log/{
  if(found){ print value }
  value=$0
  found=""
  next
}
/ref1/{
  found=1
}
END{
  if(found){
     print value
  }
}
' Input_file

100以上代码的一行形式.

awk awk '/^Log/{if(found){print value};value=$0;found="";next} /ref1/{found=1} END{if(found){print value}}' Input_file

Linux相关问答推荐

如何在Linux上获取clang中的模板实例化统计?

eBPF:仅使用系统调用加载 eBPF 程序并将其附加到 sys_enter_execve

使用 grep 时如何跳过第一行和最后一行?

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

如何删除文件中不需要的字符(使用 shell 脚本)

如何为命令的所有选项启用无密码 sudo?

提交SLURM作业(job)时出现nohup问题

我应该如何从非 root Debian Linux 守护进程登录?

ftell 在文件描述符上?

如何在 Linux 上捕获原始 HID 输入?

是否可以使用 shell 脚本递归地创建文件夹?

如何使用 AWK 合并两个文件?

为什么 Linux 不通过 TSS 使用硬件上下文切换?

我想为 Linux 内核做贡献

pthread_exit 与返回

在 mac 上通过 ssh 连接到 amazon aws linux 服务器

ngrok 如何在防火墙后工作?

用curl编译php,curl安装在哪里?

编译 OpenGL 程序 GL/glew.h 缺失

Linux下Eclipse在哪里找eclipse.ini