假设我有很多文件的形式
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 -n '2,${p;n;}'
这里特定的sed命令从其输入的第2行开始,并打印每隔一行.将grep的输出传递给它,你只能从grep输出中得到偶数行.
sed命令本身的解释:
2,$ – 从第2行到文件最后一行的行范围
{p; n;} – 打印当前行,然后忽略下一行(然后再重复)
(在所有偶数行的特殊情况下,另一种写入的方法是sed -n’n; p;’因为我们实际上不需要特殊情况下任何前导行.如果你想跳过前5行文件的行,这是不可能的,你必须使用6,$语法.)