2016-04-27 1 views
0

я следующие ситуациисравнение значения Баша и получить Uniq результаты

$ cat a.txt 
AAAA-A000 rootvg 
AAAA-B001 rootvg 
AAAA-B002 rootvg 
AAAA-A002 appvg 
AAAA-A003 appvg 
$ cat b.txt 
AAAA-B003 rootvg 
AAAA-B004 appvg 

Я хочу знать, если значение уника в последнем столбце, например, содержит различное корневую группу томов значения в первом столбце. Разница определяется как AAAA-A ... и AAAA-B ... и может быть n-вхождением.

Результат должен выглядеть следующим образом для a.tx

rootvg ok # because in the first column are values with AAAA-A... AND AAAA-B... 
    appvg notok # because in the first column are only values with AAAA-A... 
for b.txt 
    rootvg notok # because in the first column are only values with AAAA-B... 
    appvg notok # because in the first column are only values with AAAA-B... 

Любой идеи, как реализовать это в Баше?

Благодаря

ответ

0

Использование Gawk вы можете сделать ассоциативный массив в ассоциативном массиве:

[ 
    appvg: ["AAAA-A": 1], 
    rootvg: ["AAAA-A": 1, "AAAA-B": 1], 
] 

А потом посчитать длину внутреннего массива (["AAAA-A": 1]):

% awk '{ 
    a[$2][substr($1, 1, 6)] = 1 
} 
END{ 
    for(key in a) { 
    print key, (length(a[key]) > 1 ? "ok" : "notok") 
    } 
}' <<< "AAAA-A000 rootvg 
AAAA-B001 rootvg 
AAAA-B002 rootvg 
AAAA-A002 appvg 
AAAA-A003 appvg" 
appvg notok 
rootvg ok 
Смежные вопросы