5〜10文字の長さで大文字で始まる単語を含むテキストファイルの行数を見つけるためにunix / linuxでシェルスクリプトを作成する方法は?
答え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つの可能な解釈があります。開始単語は2つの要件を満たす必要があります。そうでない場合は開始単語とは異なる単語でなければならず、行番号または行番号を取得します。
大文字で始まり、5〜10の長さの単語を含む行の行番号を印刷するには、sedを使用します。
sed -nr '/^[A-Z][a-z]{4,9}/=;/^[A-Z].*\b[A-Za-z]{5,10}\b/=' FILE