在公共字段上加入行

时间:2015-03-16 07:45:16

标签: shell

在Linux系统上,我有一个文件:
你好4
你好9
你好21
世界2
世界6

如何在公共第一个字段上加入这些行,并产生如下输出:
你好4 9 21
世界2 6

使用Linux的常用工具

3 个答案:

答案 0 :(得分:0)

awk '{a[$1]=a[$1]" "$2;}END{for( i in a) print i""a[i];}' YOUR_FILE_HERE

通知:

这只适用于" space"分开的"两个字段"连续

答案 1 :(得分:0)

我亲爱的男孩,你必须自己写一个.sh剧本:

  1. 创建.sh脚本:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_01.html
  2. 阅读文件:http://en.kioskea.net/faq/1757-how-to-read-a-file-line-by-line
  3. 比较字符串:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
  4. 或使用@amow为您编写的awk脚本。

    祝你好运!

答案 2 :(得分:0)

您正在尝试进行某种数据库操作,即选择,因此用于此类任务的好工具将是awk

awk 'BEGIN { FS=" "}{arr[$1]=arr[$1] " " $2 }END {for (i in arr) print i,arr[i]}' file

其中file是您的文件