2

文本文件具有以下内容:

copy bundles\track_australia\part_054\snds.bundle
 bundles\track_italy\part_052\snds.bundle
 bundles\track_singapore\part_052\snds.bundle
copy bundles\track_abudhabi\part_054\snds.bundles.bundle
 bundles\track_belgium\part_025\snds.bundle
 bundles\track_britain\part_057\snds.bundle
 bundles\track_japan\part_053\snds.bundle
 bundles\track_usa\part_053\snds.bundle

我需要将第一行(以“copy”开头的行)与其余行合并。生成的结果应如下所示:

copy bundles\track_abudhabi\part_054\snds.bundle
copy bundles\track_abudhabi\part_054\snds.bundle bundles\track_belgium\part_025\snds.bundle
copy bundles\track_abudhabi\part_054\snds.bundle bundles\track_britain\part_057\snds.bundle
copy bundles\track_abudhabi\part_054\snds.bundle bundles\track_japan\part_053\snds.bundle
copy bundles\track_abudhabi\part_054\snds.bundle bundles\track_usa\part_053\snds.bundle
copy bundles\track_abudhabi\part_055\snds.bundle
copy bundles\track_abudhabi\part_055\snds.bundle bundles\track_belgium\part_026\snds.bundle
copy bundles\track_abudhabi\part_055\snds.bundle bundles\track_britain\part_058\snds.bundle
copy bundles\track_abudhabi\part_055\snds.bundle bundles\track_japan\part_054\snds.bundle
copy bundles\track_abudhabi\part_055\snds.bundle bundles\track_usa\part_054\snds.bundle

我有成千上万条这样的行。请帮我。

4

2 回答 2

0

基本上你想删除任何换行符,除非它后面跟着“复制”。

像这样的东西应该适用于您的搜索模式:

\R(?!copy)

(您需要在搜索和替换对话框中启用正则表达式和多行)。

(?!...)是一个负前瞻。这意味着“一个不跟随单词副本的换行符”。

然后只需用空格替换它(因为您希望在一行的最后一个单词和下一行的第一个单词之间有空格)。

于 2012-12-19T14:23:57.350 回答
0

使用 notepad++ 宏如下:

  1. 将光标设置在文件末尾
  2. Marco菜单按开始录制
  3. 打开搜索对话框并输入"\r\ncopy "(确保搜索模式为ExtendedDirectionUp)并点击Find Next
  4. 复制整行(可能使用Home --> Shift + End然后复制)
  5. 打开替换对话框(Ctrl + H)并替换"\r\n bundles""\r\n"+ 复制的行 + " bundles",取消选中Wrap around,将Direction设置为Down并点击Replace All
  6. 点击Home开始排队
  7. Marco菜单停止录制
  8. 根据需要从宏菜单重新运行宏
于 2012-12-19T14:48:12.213 回答