で始まらない行数を見つけるために、grepコマンドを使用してだから私は2つのコマンドを思い付いた:は、Linux:母音
1:grep -c [^[^aeiouAEIOU]] filename.txt;
結果:52331
2:grep -v -c [^aeiouAEIOU] filename.txt;
結果:52333
これらの2つのコマンドは私と同じですが、結果は異なります。
助けてください、これは私には意味がありません。
で始まらない行数を見つけるために、grepコマンドを使用してだから私は2つのコマンドを思い付いた:は、Linux:母音
1:grep -c [^[^aeiouAEIOU]] filename.txt;
結果:52331
2:grep -v -c [^aeiouAEIOU] filename.txt;
結果:52333
これらの2つのコマンドは私と同じですが、結果は異なります。
助けてください、これは私には意味がありません。
あなたも試すことができ、この:
grep -Ewcv "*[aeiou]*" filename.txt
これらの2つのコマンドが実際に異なることを行うと、それらのどれも実際にあなたが何を考えません:
grep -c [^[^aeiouAEIOU]] filename.txt
することはできません本当に巣[^...]
式を。代わりに、この正規表現は、]
と連結された[^[^aeiouAEIOU]
と解釈されます。つまり、[
、^
、または母音ではない文字と、]
のいずれの組み合わせでも、行内のどこにでも一致します。たとえば、これらの文字列は、b]
,c]
,#]
,;]
と一致します。これらはできません:a]
,E]
、c
、d
。そして、「どこかのラインで」あなたの2番目のコマンドについてなど、上記grep
のコマンドは、このようなaaab]
、i uc]
として行をカウントすることを意味します
、
grep -v -c [^aeiouAEIOU] filename.txt
ここでは、二重否定を持っています。まず、[^aeiouAEIOU]
は、母音以外の文字と一致します。一方、grep
に渡された-v
オプションは一致を逆転させるため、一致しない行は[^aeiouAEIOU]
と一致します。最終的な効果は、基本的にはgrep
に「aeiouAEIOU
以外のシンボルがないすべての行を数える」ということです。つまり、母音だけを含む行だけがカウントされます。実際があなたの母音で始まらない行数を与える必要があります
2つのコマンドは以下のとおりです。
grep -c ^[^aeiouAEIOU] filename.txt
grep -v -c ^[aeiouAEIOU] filename.txt