【问题标题】:extract the last repetitive section of a txt file提取txt文件的最后一个重复部分
【发布时间】:2019-07-21 01:54:21
【问题描述】:

我有一个非常大的 .txt 文件,其中包含多个具有相同格式但值不同的重复部分。我想提取最后一个重复并将其存储到 .csv 文件中。

我已成功提取所有三个重复项,但不知道如何进行。一个脚本可能会有所帮助,但我没有它背后的逻辑,因为我仍然是 shell 脚本的初学者。

预期结果将仅包含该系列的最后一次重复。 提取码:

sed -ne '/Summary of Natural Population Analysis:/,/* Total * /p'

我现在拥有的:

自然种群分析总结:

                                   Natural Population 
            Natural  -----------------------------------------------
Atom  No    Charge         Core      Valence    Rydberg      Total

  P    1   -0.00730      9.99875     4.96888    0.03967    15.00730
  H    2    0.00243      0.00000     0.99263    0.00493     0.99757
  H    3    0.00243      0.00000     0.99263    0.00493     0.99757
  H    4    0.00243      0.00000     0.99263    0.00493     0.99757

================================================ ========================= * 总计 * 0.00000 9.99875 7.94678 0.05447 18.00000

自然种群分析总结:

                                   Natural Population 
            Natural  -----------------------------------------------
Atom  No    Charge         Core      Valence    Rydberg      Total

  P    1    0.03819      9.99894     4.93544    0.02743    14.96181
  H    2   -0.01273      0.00000     1.00784    0.00489     1.01273
  H    3   -0.01273      0.00000     1.00784    0.00489     1.01273
  H    4   -0.01273      0.00000     1.00784    0.00489     1.01273

================================================ ========================= * 总计 * 0.00000 9.99894 7.95896 0.04210 18.00000

自然种群分析总结:

                                   Natural Population 
            Natural  -----------------------------------------------
Atom  No    Charge         Core      Valence    Rydberg      Total

  P    1    0.03819      9.99894     4.93544    0.02743    14.96181
  H    2   -0.01273      0.00000     1.00784    0.00489     1.01273
  H    3   -0.01273      0.00000     1.00784    0.00489     1.01273
  H    4   -0.01273      0.00000     1.00784    0.00489     1.01273

================================================ ========================= * 总计 * 0.00000 9.99894 7.95896 0.04210 18.00000

我想要的: 只是

自然种群分析总结:

                                   Natural Population 
            Natural  -----------------------------------------------
Atom  No    Charge         Core      Valence    Rydberg      Total

  P    1    0.03819      9.99894     4.93544    0.02743    14.96181
  H    2   -0.01273      0.00000     1.00784    0.00489     1.01273
  H    3   -0.01273      0.00000     1.00784    0.00489     1.01273
  H    4   -0.01273      0.00000     1.00784    0.00489     1.01273

================================================ ========================= * 总计 * 0.00000 9.99894 7.95896 0.04210 18.00000

【问题讨论】:

  • 请不要张贴文字图片。相反,请将文本 edit 复制到您的帖子中,并使用 code formatting 等格式化工具使其看起来更漂亮。
  • 也许是基于sed -n '/^Summary of Natural Population Analysis:$/, // p' 的东西?实际上,重新考虑awk 或perl 可能是一个更好的工具。
  • 部分是否有固定的行数?
  • 回复不多?我们在这里等待一些可以复制粘贴和测试的文本,而不是图片。告诉我们您是如何提取这些部分的,而不是我们知道我们可以搜索哪些关键字。请编辑您的问题。

标签: shell unix sed


【解决方案1】:

如果您不只使用 sed,我会简单地使用 unix 管道并将 tail -1 命令添加到它,例如

sed 'mysed program' | tail -1

然后您可以使用

将其存储在 csv 文件中
sed 'mysed program' | tail -1 > my.csv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2018-07-15
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多