1 grep
我想使用 GREP 搜索文件中的“User-Agent: UA”,然后提取上面最接近的包含“Via:”的行 我的问题是有时有多行包含“Via:”,但我只需要最后一个。
例如要解析的文件:
Via: 1.1.1.1
not relevant line
...
not relevant line N
User-Agent: UA
...
Via: 2.2.2.2
Via: 3.3.3.3
not relevant line
...
not relevant line N
User-Agent: UA
...
Via: 4.4.4.4
Via: 5.5.5.5
Via: 6.6.6.6
not relevant line
...
not relevant line N
User-Agent: UA
Run Code Online (Sandbox Code Playgroud)
我想要的结果是包含最接近“User-Agent:UA”的“Via:”的行
Via: 1.1.1.1
Via: 3.3.3.3
Via: 6.6.6.6
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
awk
你可以这样做:
awk '/Via/ {via_line=$0} /User-Agent: UA/ {print via_line}' input_file
Run Code Online (Sandbox Code Playgroud)
因此,我们将找到包含Via
并存储该行的每一行,覆盖任何先前的行,然后当我们找到该行时,User-Agent: UA
打印我们为该行存储的所有Via
内容。