Считайте количество слов особой длины из файла

Для UML и Схем DB, Вы могли использовать UMLet.

5
07.03.2011, 00:25
2 ответа

Если Вы grep для регулярного выражения ^.{6}$ это возвратит строки точно с шестью символами:

$ tr ' ' '\n' < Filename | grep '^.\{6\}$'
paresh
jayesh
hitesh

$ tr ' ' '\n' < Filename | grep -c '^.\{6\}$'
3
8
27.01.2020, 20:34
  • 1
    спасибо за поддержку, это хорошо работает!! но можете Вы сообщать мне об этом:.\{6\}, который Вы использовали с командой grep. –  Paresh Mayani 03.01.2011, 09:39
  • 2
    что относительно \знак прежде {и}?? –  Paresh Mayani 03.01.2011, 12:24
  • 3
    @Paresh Иначе grep будет искать { и } символы, но нет 6 повторения предыдущего шаблона. –  alex 03.01.2011, 13:50
  • 4
    Argh. Я случайно удалил комментарий, пытающийся отредактировать его; извините, кто бы ни, это было. @Paresh Как тот комментарий, на который указывают, это должно выйти из фигурных скобок, таким образом, их рассматривают как часть регулярного выражения (X{Y} означает, "находят X раз символа Y"); без Escape это ищет фактический –  Michael Mrozek♦ 04.01.2011, 17:28
  • 5
    большое спасибо для таких полезных подсказок и ответа. Спасибо еще раз –  Paresh Mayani 05.01.2011, 08:04

Кроме того,

awk -v n=6 '{for (i=1; i<=NF; i++) if (length($i) == n) print $i}' file

или, с tr

tr ' ' '\n' file | awk -v n=6 'length($0)==n'
3
27.01.2020, 20:34
  • 1
    Или просто используйте NF, Вы не должны выполнять итерации для нахождения количества полей. –  Chris Down 11.12.2012, 18:24
  • 2
    Жаль @ChrisDown, я не понимаю Ваш комментарий. Использовать NF где? –  glenn jackman 11.12.2012, 18:56
  • 3
    О, извинения, я неправильно понял намерение вопроса (неправильно читавший как 6 полей, а не шесть символов в поле). –  Chris Down 11.12.2012, 19:02
  • 4
    awk '{ print length($NF) }' filename | sort | uniq -c было полезно для подсчета размеров слова в последнем столбце файла. спасибо –  roblogic 10.11.2017, 02:51

Теги

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