将行从一个文件复制到另一个文件,跳过多个匹配项

时间:2016-08-25 21:15:35

标签: bash sed output

我有一个大文件results.txt,我想把某些行拿出来并把它们放到另一个文件中。我想要拿出的数据是一些变量,欧米茄和阿尔法。但是对于results.txt,results.txt中每组数据都会出现两次omega和alpha,我只想要第二组数据。我不知道该怎么办。我知道我应该使用SED,但我不知道如何,因为我只找到有关更换线路的帮助使用sed。任何帮助,将不胜感激。非常感谢你。

---抱歉,当我提出这个问题时,我在手机上。不知道如何插入代码。 ---

所以我的文件看起来像

Very big list of useless output
.
.
.
Results 1: 
Omega = 121
Distance = 18.7037218936
Alpha = -1.05958217593e-05
Result 5 = 18983
Result 6 = 1231.903
-------------------------
Results 1: 
Omega = 121
Distance = 18.7037218936
Alpha = -1.05958217593e-05
Result 5 = 18983
Result 6 = 1231.903
-------------------------
Second useless output for the next data set
.
.
.

下一组数据在两组结果后开始。我有600个数据集。我想从每个数据集的第二组结果打印Omega和Alpha到其他文件,最好是两列,我不知道是否可能。

我尝试过使用sed,但我发现的文档只讨论替换我搜索过的单词。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

为您制作测试文件:

$ cat > results.txt
foo
alpha 1
omega 1
foo
alpha 2
omega 2
foo
$ tac results.txt|grep -m 1 alpha; tac results.txt |grep -m 1 omega
alpha 2
omega 2