问题

问题

问题

的输出grep -A 4 davidson file.txt给了我:

davidson 0 27  |r|= 0.00244  e= [-0.04073962  0.42777949  0.44157777  0.45997235  0.45997235  0.51613738 
  0.55005554  0.5538866   0.5538866   0.57108874  0.63182267  0.68741162
  0.68741186  0.69608     0.78013465  0.78013465  0.78042162  0.78688599
  0.78688599  0.79381315  0.79381317  0.80049466  0.80049466  0.92062423
  0.93453524  1.01356402  1.01942272]  max|de|= 1.02  lindep= 0.809
--
davidson 1 54  |r|= 3.26  e= [-0.04073964  0.42777928  0.44157749  0.45997213  0.45997213  0.51613724
  0.55005542  0.55388652  0.55388652  0.57108822  0.63182247  0.68741026
  0.68741031  0.69607963  0.78013252  0.78013252  0.78042159  0.78688546
  0.78688546  0.793812    0.793812    0.80049354  0.80049354  0.92062408
  0.93453361  0.97904591  1.01356325  1.01945088]  max|de|= -0.0404  lindep= 0.694
--
davidson 2 66  |r|= 0.523  e= [-0.04073964  0.02576398  0.42777928  0.44157749  0.45997212  0.45997212
  0.51613724  0.55005542  0.55388652  0.55388652  0.57108822  0.63182247
  0.68741006  0.68741006  0.69607962  0.78013218  0.78013218  0.78042159
  0.78688546  0.78688546  0.79381179  0.79381179  0.80049292  0.80049292
  0.92062408  0.93453351  1.01356275  1.01942294]  max|de|= -0.953  lindep= 0.278

如果对于上述三组输出中的每一组,我只想要第一行和最后一行怎么办?davidson具体来说,我只想获取第 1 行和第 5 行,而不是获取字符串的每个实例的第 1-5 行。

我之前尝试过的研究

我搜索过:

“grep -A”但删除了一些行

使用 Google 和 unix.se 中的搜索栏,并没有得到很多结果(尤其是后面的搜索,它只给了我)。以下是我从 Google 搜索中找到的一些结果,以及它们似乎无法解决我的问题的原因:

当输入这个问题时,向我建议了以下问题:

但这些都不能解决我的问题。

答案1

不幸的是,您没有向我们提供原始数据的样本,但是使用上面的输出可能会达到您想要的效果?

而不是grep -A4 ...尝试这个:

awk '/davidson/{h=NR;line=$0} NR==h+4{print line;print $0}' file.txt

相关内容