Linux按列合并两文件,列的拼合

Linux按列合并两文件,列的拼合_苏冉旭的博客_百度空间

Linux按列合并两文件,列的拼合

awk 和 cut 都能把一个多列文件差分成单列文件,那么反过来也可以用paste命令把多个单列文件拼合成一个多列文件。

命令举例:

paste names numbers   将两个文件合并用tab键分隔开
paste -d’+’ names numbers   将两个文件合并指定’+’符号隔开
paste -s names        将多行数据合并到一行用tab键隔开

参数说明:合并文件的列。
语  法:paste [-s][-d ][–help][–version][文件…]
补充说明:paste指令会把每个文件以列对列的方式,一列列地加以合并。
参  数:
-d或–delimiters=  用指定的间隔字符取代跳格字符。
-s或–serial  串列进行而非平行处理。
–help  在线帮助。
–version  显示帮助信息。

使用情景:

$ cat names
Tony
Emanuel
Lucy
Ralph
Fred
gan.cublog.cn

$ cat numbers
(307) 555-5356
(212) 555-3456
(212) 555-9959
(212) 555-7741
(212) 555-0040

$ paste names numbers 将两个文件合并,他们中间用tab键分隔开
Tony (307) 555-5356
Emanuel (212) 555-3456
Lucy (212) 555-9959
Ralph (212) 555-7741
Fred (212) 555-0040
gan.cublog.cn
$ cat addresses
55-23 Vine Street, Miami
39 University Place, New York
17 E. 25th Street, New York
38 Chauncey St., Bensonhurst
17 E. 25th Street, New York
gan.cublog.cn
$ paste names addresses numbers
Tony 55-23 Vine Street, Miami (307) 555-5356
Emanuel 39 University Place, New York (212) 555-3456
Lucy 17 E. 25th Street, New York (212) 555-9959
Ralph 38 Chauncey St., Bensonhurst (212) 555-7741
Fred 17 E. 25th Street, New York (212) 555-0040
$ paste -d’ ‘ names addresses numbers 他们中间用指定的’ ‘符号隔开
Tony 55-23 Vine Street, Miami (307) 555-5356
Emanuel 39 University Place, New York (212) 555-3456
Lucy 17 E. 25th Street, New York (212) 555-9959
Ralph 38 Chauncey St., Bensonhurst (212) 555-7741
Fred 17 E. 25th Street, New York (212) 555-0040
$ paste -s names 将多行数据合并到一行,他们间用tab键隔开
Tony Emanuel Lucy Ralph Fred

参考资料:

[1]: http://hi.baidu.com/quanzhou722/blog/item/6ecb30a72513ec8fd043584e.html

[2]: http://hi.baidu.com/pinemoon/blog/item/aae173aff5c021034b36d635.html

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注