求帮助:隔行复制粘贴

需求:多行文本,把每行都复制一次,在需要粘贴到的文本每一行后面插入一行,并依次粘贴。
使用场景:创建歌词翻译行,或者其它用途。
比如:

以下是需要复制的文本

1
2
...

插入到

a
b
...

变成

a
1
b
2
...
...

我现在是用 Excel 选择性粘贴中的跳过空单元功能来实现,不过需要先在这两段文本的每一行之后按回车创建一空行,操作略笨。
有没有能直接实现的剪贴板工具,或者更简单快捷的方法?
感谢各位! :heart:

2 Likes

vs code,只要行数一致就行

功能叫啥来着,列编辑吧,其实就是支持多光标同时编辑

3 Likes

感谢,又学到了一招,确实很快!

说下操作方法:

  1. Alt + Shift + 鼠标左键 选中需要复制的多行文本,并进行复制;
  2. Alt + Shift + 鼠标左键 选中需要插入的多行文本,按回车在每一行后面创建空行;
  3. 粘贴,完成!

另外,不止 VS Code 有列编辑功能,其它类似的文本编辑器也有,比如 Notepad2-zufuliu
Sublime 也可以,只不过不如这俩方便。

3 Likes

UNIX 命令行工具中的 paste 命令也可以很好地解决这个问题(Windows 系统可借助 busybox-w32 或 WSL,Android 系统的终端里自带这个命令)。

例如,有两个文本文档

1.txt

1
2
...

2.txt

a
b
...

使用命令(请注意 1.txt 与 2.txt 的顺序)

paste -d "\n" 2.txt 1.txt > out.txt

得到的 out.txt 内容为:

a
1
b
2
...
...

命令解释:

paste 命令可将多个文本文档按行拼接。这里使用的

paste -d "\n" 2.txt 1.txt > out.txt

含义是:将 2.txt 作为第一列,1.txt 作为第二列,用换行符 \n 作为两列之间的分隔符,然后将输出结果重定向到 out.txt 之中(如不加 > out.txt,则输出结果会直接显示在命令行中。当然,也可以用管道符 | 将输出结果传递给其他支持标准输入输出的程序)

参考资料:https://www.runoob.com/linux/linux-comm-paste.html

4 Likes

看到这个合并文本的方法,我想起来好像有此类功能的文本合并软件,处理小说 txt 用的,回头看看。
殊途同归,还是思维固化了哈哈哈

excel 也有更简单一点的办法
把abc和123两个文本都复制到 A列,然后在 B列编号,abc和123两段都是从1开始
再对 B列 升序排序+扩展选区

这个排序小技巧也很好,又学到了 :smiling_face_with_three_hearts: