gpt4 book ai didi

regex - 在 grep 中抑制匹配本身

转载 作者:行者123 更新时间:2023-12-01 04:12:44 25 4
gpt4 key购买 nike

假设我有很多文件的形式

First Line Name
Second Line Surname Adress
Third Line etc
etc

现在我使用 grep 来匹配第一行。但我这样做实际上是为了找到 第二个线。第二行不是可以匹配的模式(它只取决于第一行)。我的正则表达式模式有效,我使用的命令是
grep -rHIin pattern . -A 1 -m 1

现在 -A选项打印行 赛后 . -m选项 1 场比赛后停止 (因为还有其他行符合我的模式,但我只对第一场比赛感兴趣,无论如何......)

这实际上有效,但输出是这样的:
./example_file:1:        First Line Name
./example_file-2- Second Line Surname Adress

我已经阅读了手册,但找不到任何线索或信息。现在问题来了。

如何抑制匹配 本身 ?输出应采用以下形式:
./example_file-2-        Second Line Surname Adress

最佳答案

sed救援:

sed -n '2,${p;n;}'

此处特定的 sed 命令从其输入的第 2 行开始,每隔一行打印一次。将 grep 的输出通过管道传输到其中,您将只能从 grep 输出中获得偶数行。

sed 命令本身的解释:
2,$ - 从第 2 行到文件最后一行的行范围
{p;n;} - p打印当前行,然后 ig n矿石下一行(然后重复)

(在所有偶数行的这种特殊情况下,另一种写法是 sed -n 'n;p;' 因为我们实际上不需要对任何前导行进行特殊处理。如果你想跳过文件的前 5 行,这个不可能,您必须使用 6,$ 语法。)

关于regex - 在 grep 中抑制匹配本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5165254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com