如何为x行数生成相同的字符串并粘贴2个文件?unix
如何为x行数生成相同的字符串,然后使用“粘贴”组合文件: 我有一个行数未知的文件,例如:如何为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
$ 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环境的编码。所有文件的默认编码应保持为utf8sed
本身与utf8编码没有问题。它可以处理bytestream,完全忽略编码。此外,如果所讨论的字符串只是一个简单的东西,比如x
,那么utf8与ASCII是兼容的,因此使用它可以很好地工作。我可以想象,您还没有告诉我们一些附加限制,这些限制仍然排除了sed
,但想象无助于找到解决方案;-)因此,也许您可以告诉我们更多关于sed
不适用于您的案例的原因…sed
也做了同样的工作=)