我想在 notepad++ 中删除 txt 文件中间的一列。文件长度约为 50K+ 行,因此我不希望在光标缓慢地线性移动行时按住某个键。
答案1
尝试:
Alt + Shift + 左键单击
它应该绘制一个选择矩形,可能对您有用。
答案2
我假设你有 Notepad++TextFX v0.26 插件安装并在替换对话框中选择“正则表达式”。
如果您的数据格式为
col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4
其中列没有空格且由一个空格分隔,那么假设您想删除第三列:您可以搜索(.*?) (.*?) (?:.*?)( .*)
并替换为$1 $2$3
(空格是必需的)以获得
col1 col2 col4
col1 col2 col4
col1 col2 col4
col1 col2 col4
regex101.com对搜索正则表达式的解释比我更简洁:
/(.*?) (.*?) (?:.*?)( .*)/
1st Capturing group (.*?)
.*? matches any character (except newline)
Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
matches the character literally
2nd Capturing group (.*?)
.*? matches any character (except newline)
Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
matches the character literally
(?:.*?) Non-capturing group
.*? matches any character (except newline)
Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
3rd Capturing group ( .*)
matches the character literally
.* matches any character (except newline)
Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
其他正则表达式也可以达到相同的结果。
如果您的列是固定宽度(并且包含空格)或由不同的字符分隔,那么您将必须修改搜索表达式和替换,但如果没有样本数据和所需的结果,我无法给出确切的答案。
答案3
我认为没有办法在 Notepad++ 中执行此操作,除非下载/安装插件。如果您的文件有分隔符,也许您可以将其加载到 Excel 或类似软件中,然后通过这种方式删除该列?
编辑:我刚刚想到了一个有趣的解决方案。您可以在 Windows 或任何操作系统中更改行滚动速度,重新启动 Notepad++,然后使用鼠标滚动或使用箭头键。我不知道这会带来多大的不同,但也许值得一试。
答案4
您可以在 Notepad ++ 中以列模式工作。该选项位于“编辑”菜单中 - 单击它会提示您正确的键盘快捷键。我按住 Alt 键,然后选择要删除/编辑的数据。