awk - 在匹配模式之前打印行
问题描述
我需要在匹配的模式之前打印一行。示例:我有一个这样的文件,
文件是
test file: file1
labalanalma
kaknalknala
user: xyxyxyxyxyxyxyxyyxy
djkdhjkh:whwejewj
jwjkewhjkwe: jkdwhjdweh
etc
etc:etc
Jndwejklhewljk
pattern1: Found
wkjhwekwj
wkjhwekj
我想打印“pattern1: Found”和“user: xyxyxyxyxyxyxyxyyxy”(首先搜索“pattern1: Found”,如果它在那里,那么只有从用户开始的打印行。这是 AIX 而不是 Linux,所以grep -B
在这里不起作用。
解决方案
只需将user
匹配项放入变量中并打印:
$ awk '/user:/{u=$0}/pattern/{print $0; print u}' file
pattern1: Found
user: xyxyxyxyxyxyxyxyyxy
推荐阅读
- testing - 如何在 Cypress 中生成用户可读的报告?
- ios - Tableview 属性 visibleSize 返回错误的高度
- reactjs - 无法将 web3 添加到 React 项目
- facebook - 从 fb 营销 API 检索字段“转化”
- mongodb - 身份验证失败。MongoDB
- c# - NET 5 中的 PropertyGrid 问题
- reactjs - SAD PANDA:TypeError:获取失败
- python - 在 DataFrame 中查找
- fancybox - Fancybox - 当自动启动为真时,全屏不退出
- dart - Dart HashMap 初始值