我有一個文本文件,命名爲「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'中的所有名字都是唯一的。我想統計所有的名字,並把他們的姓氏給他們。 –