比较同一文件

时间:2017-03-22 17:40:29

标签: bash

我希望了解如何在做了一些更改之后从现有文件中运行新文件。 文本文档中的示例:

name1 Viktor

name1 Kiril

name2 Angel

所以我的问题是,如何将新文件组合起来:

name1 Viktor,Kiril

name2 Angel

或至少打印,例如

名字1上的

- 你有2个

名字2上的

- 你有1个

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试awk将第一列映射为键并连接值。

cat name_file.txt | awk '{ if(!arr[$1]){ arr[$1]=$2 }else{ arr[$1]=arr[$1]","$2 } }END{ for(i in arr){ print i" "arr[i] } }'`

name1 Viktor,Kiril
name2 Angel

Awk将使用第一列作为'键处理每一行。并将值(第二列)附加到其上。

答案 1 :(得分:0)

这是我得到的:

Category

输出:

cat name_file.txt | sort |cut -d' ' -f1 | uniq -c | awk {print "on", $2, "you have", $1}'

on name1 you have 2
on name2 you have 1

输出:

cat name_file.txt | sort | cut -d' ' -f1 | uniq -c