LINUX.ORG.RU

История изменений

Исправление unterwulf, (текущая версия) :

Не уверен, что правильно понял задачу, т.к. её словесное описание расходится с приведённым кодом на шелле. Предлагаю попробовать такой вариант. (Лог этому скрипту в стандартный ввод.)

#!/usr/bin/gawk -f

/ A=auth_[a-zA-Z0-9@:_.-]+/ {
        match($0, / A=(auth_[a-zA-Z0-9@:_.-]+)/, matches)
        key = matches[1]
        senders[key] += split(gensub(/^.* for /, "", "g", $0), ignore)
}

END {
        for (key in senders) {
                print key "\t" senders[key]
        }
}

Исходная версия unterwulf, :

Не уверен, что правильно понял задачу, т.к. её словесное описание расходится с приведённым кодом на шелле. Предлагаю попробовать такой вариант. (Лог этому скрипту в стандартный ввод.)

#!/usr/bin/awk -f

/ A=auth_[a-zA-Z0-9@:_.-]+/ {
        match($0, / A=(auth_[a-zA-Z0-9@:_.-]+)/, matches)
        key = matches[1]
        senders[key] += split(gensub(/^.* for /, "", "g", $0), ignore)
}

END {
        for (key in senders) {
                print key "\t" senders[key]
        }
}