粘贴不带分隔符的文件

Tom*_*eif 11 text-processing files paste

如何在没有任何分隔符的情况下垂直连接两个文件?我尝试使用paste -d"" a b,但这只是给了我a.

示例文件:

000    0   0   0
0001000200030004
  10  20  30  40
    2000    4000
            .123
            12.1
1234234534564567
Run Code Online (Sandbox Code Playgroud)

cuo*_*glm 19

paste使用\0的空白分界符如通过POSIX定义的

paste -d'\0' file1 file2
Run Code Online (Sandbox Code Playgroud)

使用-d"" a b-d a bpaste程序看到三个参数-d,a和 相同b,这使得要粘贴的唯一文件a的分隔符和b名称。

如果您使用的是 GNU 系统(非嵌入式 Linux、Cygwin 等),您可以使用:

paste -d "" file1 file2
Run Code Online (Sandbox Code Playgroud)

该形式-d ""未由 POSIX 指定,并且可能在其他平台上产生错误。至少 BSD 和传家宝paste不会报告没有分隔符的错误。

  • 当试图从所谓的“传家宝”工具的行为中获得某些东西时要小心。该套件中的`paste` 由 Gunnar Ritter 编写,与 UNIX 源代码无关。该套件中的 Bourne Shell 源自 OpenSolaris Bourne Shell,但由于快速和 hacky 移植到缺陷,它有自己的错误在 Linux 中(例如不兼容的 wait() 实现),检查 `(exec ps)` 以验证原始文件中不存在的挂起以及我的便携式 Bourne Shell 中不存在的挂起。 (3认同)

Tom*_*eif 5

解决办法是:

paste -d "\0" a b
Run Code Online (Sandbox Code Playgroud)