Поиск дубликатов в той же строке

Мне нравится что uniq команда делает, но она ищет дубликаты на различных строках. Я хотел бы найти дубликаты даже в той же строке. какая команда может сделать это?

Рассмотреть this line this this line, и это, которое я мог бы хотеть знать, сколько раз "это" появляется в той же строке.

Существует ли команда, которая может сделать это?

4
задан 3 October 2016 в 00:47

2 ответа

Другой способ использовать awk:

echo "this  line this this line"| \
awk  'BEGIN{print "count", "lineNum"}{print gsub(/\<this\>/,"") "\t" NR}'

count lineNum
3   1
  • , Который печатает количество и номер строки, в котором this слово нашло.

  • gsub() возвращаемое значение функции является количеством сделанной замены. Таким образом, мы используем это для печати числа.

  • NR содержит номер строки, таким образом, мы используем его для печати номера строки.

4
ответ дан 1 December 2019 в 09:07

Можно сделать:

grep -Eo '[^[:blank:]]+' file.txt | sort | uniq -c
  • grep -Eo '[^[:blank:]]+' получает слова файла, разделенного любым пробелом (пробелами)

  • sort виды, вывод

  • uniq -c получает cound слов

Пример:

% grep -Eo '[^[:blank:]]+' <<<'this  line this this line' | sort | uniq -c
      2 line
      3 this
4
ответ дан 1 December 2019 в 09:07

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

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