Notepad++ 提取多个.txt文件的底线

Notepad++ 提取多个.txt文件的底线,notepad++,Notepad++,我有几百个.txt文件,它们遵循特定的格式,例如24行标题文本,然后是x行数据(每一个文件的行数不同),然后是一个空行。我唯一感兴趣的一行是最底层的数据。更具体地说,我需要第二列数据的底部值 文件不是以制表符分隔的,但标题后面的第一列是“D”(D后面的两个空格) 到目前为止,我尝试连接所有文件,并在notepad++中使用连接的文件,但没有找到标记数据底部行的方法。此外,我尝试使用宏时在“查找”选项上失败 谁能给我指出正确的方向吗 编辑:不幸的是,我在我的工作电脑上做这件事时受到了阻碍,没有授权

我有几百个.txt文件,它们遵循特定的格式,例如24行标题文本,然后是x行数据(每一个文件的行数不同),然后是一个空行。我唯一感兴趣的一行是最底层的数据。更具体地说,我需要第二列数据的底部值

文件不是以制表符分隔的,但标题后面的第一列是“D”(D后面的两个空格)

到目前为止,我尝试连接所有文件,并在notepad++中使用连接的文件,但没有找到标记数据底部行的方法。此外,我尝试使用宏时在“查找”选项上失败

谁能给我指出正确的方向吗


编辑:不幸的是,我在我的工作电脑上做这件事时受到了阻碍,没有授权下载任何类型的IDE(而且几乎没有能力)。我唯一的工具是Excel和记事本++

也许您可以更好地使用
bash
脚本:

#!/bin/bash
for f in * #loop over files
do
   tail -n 2 "$f" | head -n 1
done
因此,程序打印每个文件的最后一行

然后,您可以使用以下方法运行它:

bash script.sh
如果要将结果存储在文件中,请使用重定向:

bash script.sh > outputfile
注意:在脚本中,
*
表示匹配任何文件。如果所有文件都是例如
.txt
文件,则可以使用
*.txt

注意:您应该在文件所在的目录中运行脚本


在另一个编辑器SynWrite中,可以使用Python脚本(在控制台窗格中输入行,Ctrl+tilde)。 脚本函数-
ed\u句柄
。用法示例-

Here is example which prints all tabs contents: for h in ed_handles(): print('---'); print(Editor(h).get_text_all());

如其他回答和评论中所述,最好的方法是使用脚本(shellPerl,即使您在计算机上没有管理员权限,也可以作为独立脚本进行复制,或者使用默认情况下集成在Windows中的bashPowershell

如果您真的想使用记事本++,可以用数据替换文件,这是可能的

我使用了以下示例:

############
## HEADER ##
############
D  1 2 3
D  4 5 6
D  7 8 9
D  0 a b
(empty line)
以下替换将文件更改为第2列的数据

  • 搜索
    在文件中查找
    (Ctrl+Shift+F)
  • 查找内容:
    *D.*D\S+\S+(\S+).*
  • 替换为:
    \1
  • 过滤器:
    *.txt
  • 目录:选择包含txt文件的目录(如果其中一个文件当前在记事本++中打开,则可以使用
    跟随当前文档。
  • 搜索模式设置为
    正则表达式
    。已选中匹配换行符
这会将文件更改为

a
注意:正则表达式的解释

  • *D.*D
    对应到最后一个
    D
    之前的所有文本(D带双空格)
  • \S\S+
    对应于第一列数据及其后的空格
  • (\S+)对应于第二列数据的
  • *
    对应于其余部分

使用记事本++可能是错误的方法。这在许多编程和脚本语言中都很容易。更简单的方法是使用Unix程序“tail”。由于您可能正在使用Windows,您可以使用PowerShell,我不确定您的文件是如何分隔的,但类似的东西可能会工作
dir*.txt | ForEach{Get Content$\Tail 1}|%{$\u.Split('')[1]}