【问题标题】:Bulk Text Editing [duplicate]批量文本编辑[重复]
【发布时间】:2019-05-30 10:02:06
【问题描述】:

如何在每行的 END 中添加特定字符?跨行的新旧列值之间的间距相同!

我尝试shift+Alt 选择多行并使用搜索 --> 正则表达式 --> $ 命令我可以将光标带到每一行的末尾,而不管每个单词的大小。

但是如何合并现有列值附近的新列值,并在行间进行唯一对齐。

记事本++可以吗

Column 1 :

action             
usersessionid*
token
accountid
clientip


Column 2 :

Dinesh 
Kishore
Yuva
Vignesh
Ganesh

预期---------------

Merged Column :
action Dinesh           
usersessionid* Kishore
token Yuva
accountid Vignesh
clientip Ganesh

【问题讨论】:

  • 第 1 列或第 2 列值之间可以有空格吗?

标签: notepad++


【解决方案1】:

当您使用 Shift+Alt+鼠标拖动选择“第 2 列”的值时:

  • 只需复制值 Ctrl+C
  • 使用 Shift+Alt+鼠标拖动
  • 选择“列 1”中的值之后的列
  • 粘贴 Ctrl+V
  • 删除多余的空格:
    • Ctrl+H
    • 查找内容:\h{2,}
    • 替换为:        # 一个空格
    • 全部替换

【讨论】:

    【解决方案2】:

    您可以使用宏来完成以下任务。

    1. 从当前行开始。转到行首 (​​HOME)。

    2. 向下 10 行(向下箭头 10 次)

    3. 标记所有行(SHIFT-END)

    4. 复制所有行(CTRL-C)

    5. 回到原点(向上箭头10次)

    6. 转到行尾。 (完)

    7. 添加空格并粘贴标记的数据。 (空格 CTRL-V)

    8. 转到下一行的开头。 (向下箭头,主页)

    保存宏。

    再次运行宏直到满意为止。

    【讨论】:

      【解决方案3】:

      如果您想跳过手动选择shift+Alt,您可能需要尝试使用正则表达式和宏。请记住,可以保存宏以供以后重复使用。

      录制以下宏:

      1. 按录制宏
      2. 控制 + H
      3. 搜索:^(?!Column \d)(\S+)(?=\h*$)([\s\S]*^Column \d[\s\S]*?)^([^\r\n]+)

        替换为:\1 \3\2

      4. 全部替换
      5. 查找下一个
      6. 全部替换
      7. 停止录制宏

      现在您可以使用:Run macro multiple times 按钮播放宏,然后选择:Run until the end of file

      注意事项:

      我假设第一列数据之间没有空格(例如在Customer Id 中)。

      我还假设存在 Column 1 : 和 Column 2 : 文字

      【讨论】:

      • 如果第一组列可以有空格那么它仍然可以完成,但是我们需要在宏上进行一些额外的步骤。请告诉我。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2012-12-16
      • 2018-03-06
      相关资源
      最近更新 更多