我有一个文本文件,命名为“hosts.tbl”:AIX grep的用于AWK结果
BILL RED
VAL YELLOW
STEVE YELLOW
TOM ORANGE
BILLY RED
VALERIE BLUE
我有一个第二文件,命名为“details.tbl”具有上述的每个名称,多次(在每一行的各种其他细节中)。我要统计每个名字出现了多少次内“details.tbl”,并与像这样结束:
BILL RED 8
VAL YELLOW 16
STEVE YELLOW 9
TOM ORANGE 1
BILLY RED 2
VALERIE BLUE 30
正如你所看到的,一个正常的“grep”为“比尔会给我都“BILL”和“BILLY”。 “VAL”和“VALERIE”相同。但是,在“details.tbl”文件中,每个名称的每次出现后面都跟着“-C”。例如:
STEVE-C
STEVE-C
BILL-C
BILLY-C
我曾尝试:
awk {'print $1 " " $2 " "'} hosts.tbl|grep -c $1"-C" details.tbl
awk {'print $1 " " $2 " "'grep -c $1"-C" details.tbl} hosts.tbl
...以及各种类似的语法的其他排列,上面......所有令人沮丧的失败。显然,在涉及到shell命令,尤其是UNIX时,我是新手。我在想什么,在这里?在man页面中找不到关于如何在grep内连接搜索条件的任何内容,或者如何仅将特定字段从awk传递给grep。
假设details.tbl文件的适用部分看起来是这样的:
BILL-C
VAL-C
STEVE-C
TOM-C
BILLY-C
VALERIE-C
BILL-C
VAL-C
STEVE-C
TOM-C
BILLY-C
VALERIE-C
输出应该是这样的:
BILL RED 2
VAL YELLOW 2
STEVE YELLOW 2
TOM ORANGE 2
BILLY RED 2
VALERIE BLUE 2
它不清楚,如果你认为返回BILL和BILLY(例如)就是你需要的。给定你的'-C'文件,请**编辑你的Q **,以显示2个输入项目之一的预期输出。 (虽然在这种情况下不是必需的,但继续标记AIX Qs是个好主意,因为该系统与Linux非常不同,甚至是其他供应商的旧式Unixens)。祝你好运。 – shellter
解释不同(如果我理解的很好):我有一个带有名字和姓氏的文件'hosts.tbl'。另一个文件'details.tbl'只有名字,后面跟着'-C'。 'hosts.tbl'中的所有名字都是唯一的。我想统计所有的名字,并把他们的姓氏给他们。 –