如何计算具有一定长度的标题大小写单词的行数?

如何计算具有一定长度的标题大小写单词的行数?

如何在 unix/linux 中创建 shell 脚本来查找文本文件中包含 5 到 10 个字符长且以大写字母开头的单词的行数?

答案1

假设原来的问题是为了数数符合上述要求的行数,那么应该这样做:

grep -e '\<[[:upper:]][[:alpha:]]\{4,9\}\>' file|wc -l

假设这意味着打印匹配的行号:

awk --re-interval '{line = line + 1} /\<[[:upper:]][[:alpha:]]{4,9}\>/ {print line}' file

答案2

egrep "^[A-Z]" FILE | egrep -c "\b[A-Za-z]{5,10}\b"

现在的问题是,过滤掉以大写字母开头的行(就像这一行)[该行必须以大写字母开头 - 而不是单词],并包含一个单词(不一定是第一个单词) ),长度为 5 到 10 个字符。

是的,读完原题后,有 4 种可能的解释: 起始词必须满足两个要求,或者它是起始词和另一个词,以及: 获取行号,或行数。

要打印以大写字母开头并包含长度为 5-10 的单词的行的行号,我们使用 sed:

sed -nr '/^[A-Z][a-z]{4,9}/=;/^[A-Z].*\b[A-Za-z]{5,10}\b/=' FILE 

相关内容