如何从文本文件中删除特定范围的字符?

How to remove a specific range of characters from a text file?

我有一个 txt 文件(在 notepad++ 中打开),格式如下:

Name|Address|City|St|Zip|Off|Z|Contact|Telephone|800|Fax|Notes

我的问题是导出文件时有多个页面,现在我有:

Page 1 of 134
Locations
3/3/2015
 |Name|Address|City|St|Zip|Off|Z|Contact|Telephone|800|Fax|Notes

在整个文件中。我正在手动删除它们,这需要时间,我想知道是否有更简单的方法来执行此操作?

您可以使用基于正则表达式的查找和替换操作。例如,正则表达式“^Locations$”将匹配以单词 "Locations" 开头和结尾的行。用空字符串替换各种正则表达式。

一种更简单的方法是,如果您可以访问 unix "grep" 实用程序,您可以像这样通过管道传输文件:

cat file.txt | grep -v '^Locations$' | grep -v '^Page [0-9]* of 134$' | grep -v '^[0-9]*/[0-9]*/[0-9]*$' > clean-file.txt

'-v'参数表示不显示与正则表达式匹配的任何行。

Notepad++ 可以执行正则表达式 search/replace。 使用此搜索模式(确保选中“正则表达式”单选按钮:

第[0-9]页+? [0-9]+?[\r\n\s\w\d/]+?\|

并且什么都不替换。