Notepad++ 提取多个.txt文件的底线
我有几百个.txt文件,它们遵循特定的格式,例如24行标题文本,然后是x行数据(每一个文件的行数不同),然后是一个空行。我唯一感兴趣的一行是最底层的数据。更具体地说,我需要第二列数据的底部值 文件不是以制表符分隔的,但标题后面的第一列是“D”(D后面的两个空格) 到目前为止,我尝试连接所有文件,并在notepad++中使用连接的文件,但没有找到标记数据底部行的方法。此外,我尝试使用宏时在“查找”选项上失败 谁能给我指出正确的方向吗Notepad++ 提取多个.txt文件的底线,notepad++,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());
如其他回答和评论中所述,最好的方法是使用脚本(shell或Perl,即使您在计算机上没有管理员权限,也可以作为独立脚本进行复制,或者使用默认情况下集成在Windows中的bash和Powershell) 如果您真的想使用记事本++,可以用数据替换文件,这是可能的 我使用了以下示例:
############
## 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]}