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