如何为x行数生成相同的字符串并粘贴2个文件?unix

如何为x行数生成相同的字符串并粘贴2个文件?unix,unix,text-files,echo,paste,cat,Unix,Text Files,Echo,Paste,Cat,如何为x行数生成相同的字符串,然后使用“粘贴”组合文件: 我有一个行数未知的文件,例如: $ echo -e "a\tb\tc\nd\te\tf" > in.txt $ cat in.txt a b c d e f 我想用一个新列来连接文件,该列的每一行都有相同的字符串。我曾尝试使用echo创建一个文件,然后使用paste to concat对列进行压缩,但我必须先知道in.txt中的行数,然后使用echo创建一个in2.txt $ echo -e "a\tb\tc\nd

如何为x行数生成相同的字符串,然后使用“粘贴”组合文件: 我有一个行数未知的文件,例如:

$ echo -e "a\tb\tc\nd\te\tf" > in.txt
$ cat in.txt
a   b   c
d   e   f
我想用一个新列来连接文件,该列的每一行都有相同的字符串。我曾尝试使用echo创建一个文件,然后使用paste to concat对列进行压缩,但我必须先知道
in.txt
中的行数,然后使用echo创建一个
in2.txt

$ echo -e "a\tb\tc\nd\te\tf" > in.txt
$ cat in.txt
a   b   c
d   e   f
$ echo -e "x\nx\n" > in2.txt
$ paste in.txt in2.txt
a   b   c   x
d   e   f   x
如果.txt中的
行数未知,如何才能获得相同的输出?,例如

[in:::

a   b   c
d   e   f
a   b   c   x
d   e   f   x
[输出:

a   b   c
d   e   f
a   b   c   x
d   e   f   x

我的数据由一百万行组成,在.txt的
中有3列,每行50-200个字符,因此解决方案需要记住“大”数据大小。

单向连接

echo | join input - -a 1 -o "1.1 1.2 1.3 2.1" -e x

尽管仅仅做一个
sed
替换应该更好。

请解释为什么仅仅用
sed
更改每一行是不可能的(例如
sed的/$/\tx/'
)。使用sed是可能的,但我不想弄乱来自不同unix环境的编码。所有文件的默认编码应保持为utf8
sed
本身与utf8编码没有问题。它可以处理bytestream,完全忽略编码。此外,如果所讨论的字符串只是一个简单的东西,比如
x
,那么utf8与ASCII是兼容的,因此使用它可以很好地工作。我可以想象,您还没有告诉我们一些附加限制,这些限制仍然排除了
sed
,但想象无助于找到解决方案;-)因此,也许您可以告诉我们更多关于
sed
不适用于您的案例的原因…
sed
也做了同样的工作=)