【问题标题】:Get the list of all line numbers of all blank lines found in a text file in notepad++ or microsoft excel?获取notepad++或microsoft excel文本文件中所有空行的所有行号列表?
【发布时间】:2020-04-30 04:10:53
【问题描述】:

我有超过 1000 行数据的文本文件,这些文本文件中的文本行由一个空白行以随机间隔分隔。我如何获取或打印这些空白行号的列表为 5,15,50,77,150,294 。 我遇到了一个类似的问题,但它是针对 python - Get Line Number of certain phrase in file Python

我们可以在notepad++或excel中实现同样的效果吗?

【问题讨论】:

  • 这不是 Notepad++ 的工作。你必须用你最喜欢的脚本语言编写脚本。

标签: excel notepad++


【解决方案1】:

将光标放在文件第一行的开头。使用菜单 => 编辑 => 列编辑器。选择“要插入的数字”,初始数字 = 1,增加 = 1,将重复留空,选择前导零。点击确定。

文件现在应该有行号,每行都带有前导零。计算文件最后一行添加的位数。如果文件包含 1000 到 9999 行(含),则应该有 4(四)位数字。

打开搜索窗口并选择标记选项卡。在查找内容字段中输入 ^\d{4}. 。如果需要,将 4 更改为在文件最后一行找到的位数。这将标记任何在四个前导数字之后有内容的行。选择“正则表达式”和“环绕”和“书签线”。点击“全部标记”。现在应该可以看到除了左边距附近有蓝色圆圈的空白行之外的所有行。使用菜单 => 搜索 => 书签 => 删除带书签的行。缓冲区现在应该只有空白行的条目。

打开搜索和替换窗口。在“查找内容”区域输入^\R0*,在“替换为”输入,(即逗号或逗号空格)。选择“正则表达式”和“环绕”。点击“全部替换”。

现在只需要删除第一行的前导零和文本末尾可能的尾随逗号。


对于 Excel 方法:

假设文件的每一行都在工作表的一行中。在工作表中插入一个新列。将行号放入该列的单元格中。 (我有时将 1 放入单元格 A1 并将公式 =A1+1 放入下面的单元格。然后将该单元格复制到该单元格下面的每个单元格中,直到工作表中的最后一行数据。接下来,复制整个列并粘贴特殊的插入值。)

在工作表的一列中获得了行号。根据 B 列中的值对工作表进行排序。这会将所有非空行置于顶部。带有行号的空行将显示在已排序行的底部。

【讨论】:

    【解决方案2】:

    这个 perl one liner 可以完成这项工作:

    perl -anE 'say $. if /^\h*$/' file.txt
    

    说明:

    • $. 包含当前行
    • /^\h*$/ 匹配空行

    【讨论】:

      猜你喜欢
      • 2016-01-13
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2017-11-09
      相关资源
      最近更新 更多