如何从 Notepad++ 文件中删除列

如何从 Notepad++ 文件中删除列

我想在 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 键,然后选择要删除/编辑的数据。

相关内容