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

Csv 如何从文本文件中删除特定范围的字符?,csv,text,notepad++,Csv,Text,Notepad++,我在记事本++中打开了一个txt文件,格式如下: 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 在整个文件中。我正在手动删除它们,这需要时间,我想知道是否有更简单的方法来执行

我在记事本++中打开了一个txt文件,格式如下:

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开头和结尾的行。用空字符串替换各种regexp

一种更简单的方法是,如果您可以访问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++可以执行正则表达式搜索/替换。 使用此搜索模式确保选中正则表达式单选按钮:

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


并替换为零。

我尝试修改此项:\+.*Item\+找到+字符。|。*选择+后面的文本,直到单词Item | Item找到字符串Item |允许我们访问括号内的内容。第一组括号可用\1访问,第二组括号可用\2.Ok访问。我最后做的是使用@LocEngineer建议的方法,这将删除文本的一部分。然后我删除了名称|地址|城市|圣|邮编| Off | Z |联系人|电话| 800 |传真|便笺,然后我用扩展模式\n\r清除了空行,选择了它,直到2015年3月3日134个位置中的第2页|您能解释一下它是如何工作的,以便我可以让它选择最多个便笺吗?这有点让我不知所措,我根本没用过regex。我的缺点:1它确实会在notes之前选择管道字符。替换为单管字符|。如果你把所有的都换掉,它会立刻把所有的线都拆下来。谢谢你,伙计。用单管字符替换是什么意思?我最后把它整理了一下,但我想更好地理解它。把你的列名| Name | Address | City |分隔开的直条东西。。。它被称为管道。由于搜索模式匹配包括第一个管道在内的所有内容,因此不替换任何内容将删除名称之前的管道。我想你可能不想这样,所以我说把模式放在搜索字段,把一个管道放在替换字段。这将删除垃圾,但留下|名称|。。。线路完好无损。