【问题标题】:Merge 2 text files into one, same lines将 2 个文本文件合并为一个相同的行
【发布时间】:2014-08-15 17:37:01
【问题描述】:

我有一个文件,其中包含:

file2.txt

PRIMERB
PrinceValiant
Priory
PRISTINA
embossed
heavy
incised
light
Outline
ribbon

file1.txt

PRIMERB 333
PrinceValiant 581
Priory789
PRISTINA3!1
embossed509
heavy5@
incised999
light5*1
Outline937
ribbon-81

我想将这两个文件合并/合并在一起,这样它们就会像:

PRIMERB 333 PRIMERB
PrinceValiant 581 PrinceValiant
Priory789 Priory
PRISTINA3!1 PISTINA
embossed509 embossed
heavy5@ heavy
incised999 incised
light5*1 light
Outline937 Outline
ribbon-81 ribbon

我将如何在 中执行此操作?

【问题讨论】:

    标签: notepad++ text merge notepad++


    【解决方案1】:
    1. 在 file1 的第一行末尾添加空格字符,直到它比 file1 中最长的行长。

    2. 对文件 2 的全部内容进行列模式选择。通过按住 ALT 键同时在文件上拖动鼠标来执行此操作。当您拖动时,您应该会看到选定的屏幕矩形区域。在 file2 的第一行中的第一个字符之前开始选择可能是最简单的。也可以只用键盘进行列模式选择。按住 ALT 和 Shift 键的同时使用箭头键移动光标。

    3. 复制所选文本。 (Control-C 或菜单 => 编辑 => 复制 或上下文菜单 => 复制。)

    4. 粘贴在添加到 file1 的空格之后。

    5. 删除不必要的空格。

    如果 files1 和 file2 中的现有空格很重要,您可以使用正则表达式来更改 file2 中的每一行,以便在选择其内容之前具有两个文件中都没有出现的某些字符或字符序列。例如,查找^ 并替换为!!。然后您可以使用另一个正则表达式仅删除粘贴添加的空格。例如,将_*!!(空格、星号、感叹号、感叹号)替换为_(空格;请注意,空格在这两个字符串中显示不正确,因此为清楚起见,它们显示为下划线_) .

    另请参阅 Notepad++ 帮助页面的 编辑 => 列模式编辑部分。

    【讨论】:

    • 节省了很多时间..谢谢!!
    【解决方案2】:

    也许你可以试试ConyEdit。它是文本编辑器的交叉编辑器插件,包括 Notepad++。

    按照以下步骤操作
    1、保持 ConyEdit 运行。
    2、使用cc.gl a命令行向数组a推送数据。
    3、使用cc.gl b命令行向数组b推送数据。
    4、使用cc.p命令行打印数组a和数组b的内容。

    Gif 示例

    【讨论】:

      【解决方案3】:

      与其寻找某种自动化的方法,我认为您只需复制和粘贴会更容易...
      但这完全取决于您在这些文本文件中获得了多少行文本。如果它们包含少于 50 行,我建议您复制(或剪切)并粘贴。
      无论如何,我不知道有什么方法可以在 Notepad++ 中实现自动化。

      编辑:

      根据您的要求,我编写了一个快速的 PHP 脚本,该脚本从 'file1.txt' 和 'file2.txt' 中提取行并将其合并到 'file3.txt'

      <?php
      $files1 = file('file1.txt'); // read file1.txt
      $files2 = file('file2.txt'); // read file2.txt
      // Assuming both files have equal amount of rows.
      for($x = 0; $x < count($files1); $x++) {
        $files1[$x] = str_replace(array("\n", "\r"), "", $files1[$x]);
        $files3[$x] = $files1[$x]." ".$files2[$x];
      }
      $result = implode("", $files3); // combines the array to a single string.
      if(file_put_contents('file3.txt', $result)) { // puts the imploded string into file3.txt
        echo "Writing to file 'file3.txt' was successfull.";
      }
      ?>
      

      现在我想尽我所能为您提供帮助,但此时我无法访问我自己的域,而且我还没有写任何东西让您将自己的文件上传到其中。

      您可以通过下载最新的USBWebserver自己运行它

      1. 解压您从 USBWebserver 网站下载的 .zip 文件。
      2. 转到刚刚提取的“根”文件夹。
      3. 删除该“根”文件夹中的所有内容。
      4. 复制上面的代码并将其保存为 'root' 文件夹中的 'index.php' (您也可以使用 notepad++ 执行此操作)。
      5. 将您的“file1.txt”和“file2.txt”移动到同一个“根”文件夹。
      6.上一个文件夹并执行'usbwebserver.exe'。
      7. 弹出窗口时点击“localhost”。
      8. 如果您收到消息:“写入文件 'file3.txt' 成功。”你现在应该在那个“根”文件夹中有“file3.txt”。

      【讨论】:

      • 这就是重点,超过 2k 行。无论如何,它不一定与 Notepad++ 一起使用。也许在 PHP 脚本中,也许网上存在我不认识的人?
      • 我可以编写一个快速的 php 脚本,但这需要 +- 30 分钟。
      • 如果你能做到,那真的很有帮助!我可以在某个地方重新链接到你吗?
      • 我想将您的脚本放到一个域中,因为我认为更多的人希望将其自动化。当然,你会在页脚的学分中。
      • 已编辑,现在包含一个 php 脚本和如何执行它的说明。
      猜你喜欢
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多