【发布时间】:2011-06-04 04:26:55
【问题描述】:
我正在尝试为字符串的前 2 个匹配项(最多只有 2 个匹配项)包括一些上下文(grep -B 1 -A 5),将每组 7 行分成两部分分隔变量并根据每个集合是否包含不同的字符串编写 if 语句。
在某些情况下,文件可能只包含一个匹配项。
我知道如何对两个匹配项进行 grep,但不知道如何将它们拆分为单独的变量。我还可以编写一个 if 语句来检查变量是否为空(表示缺少第二个匹配项)。我不确定如何检查每个变量以查看它是否包含第二个字符串。任何帮助都会有所帮助。谢谢!
例子:
grep -B1 -A5 "解决方案:"file.txt
Color LCD:
Resolution: 1440 x 900
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Built-In: Yes
LED Cinema Display:
Resolution: 1920 x 1200
Depth: 32-Bit Color
Core Image: Hardware Accelerated
Mirror: Off
Online: Yes
Quartz Extreme: Supported
基于每个匹配集是否包含“主显示”的期望结果:
$mainDisplay = 彩色 LCD
$secondDisplay = LED Cinema Display(或 null 表示没有第二个匹配)
【问题讨论】:
-
提供一个小的示例输入和期望的结果可能有助于说明您的目标。
-
如果匹配的距离太近,就不会有两组7行;在这种情况下你想要什么?
-
我提供了示例输入。
-
根据我的经验,在我梳理的 7 行数据中,我捕捉到了我需要的信息而没有重叠。谢谢:)