как найти количество повторных слов в файле при запуске предложения? например.
abc bdbdndnvd hddh hcjdhjc
dgdgd ghcdggcd abc hjdhcj
abc ghdsgcgdc cdghcgd dhgch
hshhj hcdhchd hdjchjd
Вывод:
abc
только заинтересованный повторным словом в целом файле при запуске только. Если то слово больше нигде не должно быть counted.i.e. В вышеупомянутом примере abc
повторяется дважды. Кто-либо может предложить меня, как я могу сделать эту команду использования? Я использую Ubuntu 16.04.
использование cut
и uniq
cut -d" " -f1 | sort | uniq -d
cut
команда извлекает первое слово каждой строки, и sort
в сочетании с uniq -d
печать только дублированные слова.
Используя awk
:
awk '{a[$1]++} END {for (i in a) if (a[i] > 1) print i}'
Это просто считает количество раз, первое слово в строке ($1
) было замечено и сохраняет его в массиве. Затем просто цикл по всем элементам массива, замеченным до сих пор и печать те, которые появились многократно.
, Конечно, я вошел в колею цикличного выполнения через массивы в END
. steeldriver отмечает, что я не должен:
awk 'a[$1]++ == 1' file