相关疑难解决方法(0)

使用sed在模式匹配后打印上一行?

每次找到匹配项时,我都想打印上一行。我知道grep -A-B选项。但是我的 Solaris 5.10 机器不支持这些选项。

我想要只使用sed.

Foo.txt

Name is : sara
age is : 10
Name is : john
age is : 20
Name is : Ron
age is : 10
Name is : peggy
age is : 30
Run Code Online (Sandbox Code Playgroud)

Out.txt

Name is : sara
Name is : Ron
Run Code Online (Sandbox Code Playgroud)

我试图匹配的模式是age is : 10.

我的环境,Solaris 5.10。

sed

12
推荐指数
2
解决办法
4万
查看次数

是否可以将 grep -C 或 -A 或 -B 与排除匹配行的内容结合使用

因此,使用 grep 我们可以使用 -A 来获取匹配“之后”的行,我们可以使用 -B 获取匹配“之前”的行。我们也可以使用 -C 来获取前后的行。

我有一些这样的数据

boring data
boring data
boring data
interesting value
MARK
boring data
boring data
boring data
interesting value
MARK
Run Code Online (Sandbox Code Playgroud)

我想得到这样的输出:

interesting value
interesting value
Run Code Online (Sandbox Code Playgroud)

使用选项 -BI 得到这个:

# cat somefile | grep -B 1 MARK

interesting value
MARK
interesting value
MARK
Run Code Online (Sandbox Code Playgroud)

我想完全排除 MARK 线。

linux grep

5
推荐指数
2
解决办法
883
查看次数

标签 统计

grep ×1

linux ×1

sed ×1