【问题标题】:How to add blank columns at specific positions in big text file?如何在大文本文件的特定位置添加空白列?
【发布时间】:2019-08-05 12:56:02
【问题描述】:

我有 200 个格式相同的文件,需要以相同的方式编辑所有文件,直到文件结束,我需要从第 7 行开始添加多个空白(单个空格)列直到文件结束。

实际:

O-XYZ-04           101.0274239.30N692920.64E 

目标:

O-XYZ-04           101.0 27 42 39.30 N 69 29 20.64 E  

我试过 Alt+Shift 选项。还尝试了 Alt+C 选项,但这些选项适用于单个小文件。我也没有录制宏并运行它。

【问题讨论】:

  • 我相信这个问题属于 superuser.stackexchange.com 论坛(尽管我看到你已经标记了它notepad++
  • 这不是编辑的工作,你最好用你最喜欢的脚本语言编写脚本。
  • 您也可以尝试 unix.stackexchange.com 使用 cat 命令连接您的结束输出。但是,是的,@Toto 说。
  • 使用 notepad++ 正则表达式,这更接近,查找:(O-.*?\d+\.0\K|\G)(.{2}) 替换为:$2 ↝ [space $2 space ] 但我是新手,所以不能告诉引擎忽略点,否则它将是一个固定的答案

标签: regex vba notepad++


【解决方案1】:

这当然不是一个好的解决方案,而是一个务实的解决方案。您可能会收到警告 - 请先为所有文件制作备份副本

我假设您的文件都具有扩展名 *.txt 和以下格式,并位于文件夹中,例如D:\_working:

SUR AREA                 ABC
SUR NAME                 ABC 2000
SUR DATE                 2000
TAPE VERSION             N/A
BBBBBBBBBBB              ABC
LOCATION TYPE            ABC
O-XYZ-O4           101.0274239.3ON692920.64E
O-XYZ-O4           102.0274240.11N692920.65E
O-XYZ-O4           103.0274240.93N692920.66E
O-XYZ-O4           104.0274241.74N692920.67E
O-XYZ-O4           105.0274242.56N692920.67E
O-XYZ-O4           106.0274243.37N692920.68E
  • 首先用 Notepad++ 打开工作目录中的一个文件
  • Ctrl+H
  • 转到在文件中查找选项卡
  • 找到什么:(\w{1}-\w{3}-\w{2}\s{11})(.{5})([0-9]{2})([0-9]{2})(.{5})([N])([0-9]{2})([0-9]{2})(.{5})[E]
  • 替换为:\1\2 \3 \4 \5 \6 \7 \8 \9 E
  • 过滤器:*.txt
  • 目录:例如D:\_工作
  • 搜索模式:正则表达式
  • 点击在文件中替换
  • 确定后点击确定

请注意替换字符串中的空格。

这导致:

SUR AREA                 ABC
SUR NAME                 ABC 2000
SUR DATE                 2000
TAPE VERSION             N/A
BBBBBBBBBBB              ABC
LOCATION TYPE            ABC
O-XYZ-O4           101.0 27 42 39.3O N 69 29 20.64 E
O-XYZ-O4           102.0 27 42 40.11 N 69 29 20.65 E
O-XYZ-O4           103.0 27 42 40.93 N 69 29 20.66 E
O-XYZ-O4           104.0 27 42 41.74 N 69 29 20.67 E
O-XYZ-O4           105.0 27 42 42.56 N 69 29 20.67 E
O-XYZ-O4           106.0 27 42 43.37 N 69 29 20.68 E

如果您有全球的数据,那么您必须调整北、东、南和西的 RegEx。如果地理坐标之前的计数器超过 999,您也必须调整 RegEx。

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2013-04-19
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多