как найти количество повторных слов в файле командой?

как найти количество повторных слов в файле при запуске предложения? например.

abc bdbdndnvd hddh hcjdhjc  
dgdgd ghcdggcd abc hjdhcj 
abc ghdsgcgdc cdghcgd dhgch 
hshhj hcdhchd hdjchjd 

Вывод:

abc 

только заинтересованный повторным словом в целом файле при запуске только. Если то слово больше нигде не должно быть counted.i.e. В вышеупомянутом примере abc повторяется дважды. Кто-либо может предложить меня, как я могу сделать эту команду использования? Я использую Ubuntu 16.04.

2
задан 14 March 2017 в 16:51

2 ответа

использование cut и uniq

cut -d" " -f1 | sort | uniq -d

cut команда извлекает первое слово каждой строки, и sort в сочетании с uniq -d печать только дублированные слова.

5
ответ дан 2 December 2019 в 01:29

Используя awk:

awk '{a[$1]++} END {for (i in a) if (a[i] > 1) print i}'

Это просто считает количество раз, первое слово в строке ($1) было замечено и сохраняет его в массиве. Затем просто цикл по всем элементам массива, замеченным до сих пор и печать те, которые появились многократно.

, Конечно, я вошел в колею цикличного выполнения через массивы в END. steeldriver отмечает, что я не должен:

awk 'a[$1]++ == 1' file
4
ответ дан 2 December 2019 в 01:29

Другие вопросы по тегам:

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