需要替换列范围内的字符

时间:2019-10-25 19:24:47

标签: notepad++

我正在使用记事本++。我有一个很大的文件(1gb),它使用管道作为分隔符。不幸的是,文件中有一列的数据也使用管道。有没有一种方法可以指定一百万行的列范围(例如300-350),以找到管道并将其替换为破折号。

2 个答案:

答案 0 :(得分:0)

对于非常大的文件,请使用命令行工具来分析文件。 对于1GB的可视编辑器,适得其反。

完成任务最流行的工具是awk

安装GIT后,您可以在Bash shell中使用awk

我最喜欢的Windows Bash Shell替代软件免费提供Mobaxterm

或者使用Windows 10中内置的Bash shell。

如果您从大型文件中发布了几个示例行,并发布了另一个问题,那么贡献者也将为您提供awk

一旦有了文本处理工具,提取前10行的工具就是head

head largeFile.txt

在此answer中,还有一种PowerShell解决方案可以从大型文件中提取前几行。

答案 1 :(得分:0)

  • Ctrl + H
  • 查找内容:^.{300}[^|]{0,50}+\K\|(在您方便时调整值)
  • 替换为:-
  • 检查 环绕
  • 检查 正则表达式
  • 取消检查 . matches newline *
  • 全部替换

说明:

^               # beginning of line
  .{300}        # 300 any character but newline
  [^|]{0,50}    # 0 up to 50 any character that is not a pipe
  \K            # forget all we have seen until this position
  \|            # a pipe

我用一个较小的文件进行了测试,它将第13列和第22列之间的管道替换为连字符以显示该方法,并根据需要调整值:

屏幕截图(之前):

enter image description here

屏幕截图(之后):

enter image description here