![](/img/trans.png)
[英]Grep multiple patterns from a file and output first 5 matches for each pattern
[英]Using grep for multiple patterns from multiple lines in a output file
我有一個像文件中捕獲的數據輸出。
attrib1:someval11
attrib2:someval12
attrib3:someval13
attrib4:someval14
attrib1:someval21
attrib2:someval12
attrib4:someval24
attrib3:someval23
attrib1:someval31
attrib2:someval32
attrib3:someval33
attrib4:someval34
我想只在“ attrib2是someval12 ”的情況下從數據列表中提取attrib1,attrib3,attrib4。
請注意attrib3和attrib4可以在attrib2之后的任何順序。
到目前為止,我嘗試使用帶-A和-B選項的grep但我需要指定行號,這是一種我不想做的硬編碼。
grep -B 1 -A 1 -A 2“attrib2:someval12”| egrep -w“attrib1 | attrib3 | attrib4”
我可以使用grep的任何其他選項,但不涉及為此示例指定之前和之后的出現?
Grep和其他工具(如join,sort,uniq)的工作原理是“每行一條記錄”。 因此可以使用三步管:
首先,您需要選擇一個已知在輸入中不會出現的字符,並將其用作分隔符。 例如,'|'。
然后,找到步驟1的sed命令,該命令將輸入轉換為格式
現在第2步很簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.