Принудительно настроить группу хоста при ssh -через IP-адрес

Следующая программа awkсохраняет подсчет того, сколько раз встречается каждый набор из трех последовательных слов (после удаления знаков пунктуации ), и печатает подсчеты и набор слов в конце, если подсчет больше 1:

{
        gsub("[[:punct:]]", "")

        for (i = 3; i <= NF; ++i)
                w[$(i-2),$(i-1),$i]++
}
END {
        for (key in w) {
                count = w[key]
                if (count > 1) {
                        gsub(SUBSEP," ",key)
                        print count, key
                }
        }
}

Учитывая текст в вашем вопросе, получается

2 Search Inside Yourself
2 Cultivate The Three
2 The Three Essential
2 Joy on Demand
2 Recognize and Cultivate
2 Three Essential Virtues
2 and Cultivate The
2 The Ideal Team
3 Ideal Team Player

Как видите, это может быть не так уж полезно.

Вместо этого мы можем собрать ту же информацию о счете, а затем выполнить второй проход по файлу, печатая каждую строку, содержащую тройку слов с числом больше единицы:

NR == FNR {
        gsub("[[:punct:]]", "")

        for (i = 3; i <= NF; ++i)
                w[$(i-2),$(i-1),$i]++

        next
}

{
        orig = $0
        gsub("[[:punct:]]", "")

        for (i = 3; i <= NF; ++i)
                if (w[$(i-2),$(i-1),$i] > 1) {
                        print orig
                        next
                }
}

Проверка вашего файла:

$ cat file
The Ideal Team Player
The Ideal Team Player: How to Recognize and Cultivate The Three Essential Virtues
Ideal Team Player: Recognize and Cultivate The Three Essential Virtues

Joy on Demand: The Art of Discovering the Happiness Within
Crucial Conversations Tools for Talking When Stakes Are High
Joy on Demand

Search Inside Yourself: The Unexpected Path to Achieving Success, Happiness
Search Inside Yourself
$ awk -f script.awk file file
The Ideal Team Player
The Ideal Team Player: How to Recognize and Cultivate The Three Essential Virtues
Ideal Team Player: Recognize and Cultivate The Three Essential Virtues
Joy on Demand: The Art of Discovering the Happiness Within
Joy on Demand
Search Inside Yourself: The Unexpected Path to Achieving Success, Happiness
Search Inside Yourself

Предупреждение :Этой awkпрограмме требуется достаточно памяти, чтобы сохранить текст вашего файла примерно в три раза, и она может найти дубликаты в общих фразах, даже если записи на самом деле не дублируются (, например. «Как готовить» может быть частью названий нескольких книг ).

1
20.10.2021, 16:37
0 ответов

Теги

Похожие вопросы