数値を含む特定のファイル内の単語の総数を見つけようとします。特定の数字ではなく、どんな数字でも含まれる単語だけ探しています。私は次のようにgrepとwcコマンドを使ってみました。
grep [0-9] filename | wc -w
私が得た結果は「一致しない」です。何が間違っているのか誰が見ることができますか?
助けてくれてありがとう。
ベストアンサー1
シェルが独自の構文規則を使用して括弧を解釈しているため、一致するものを取得できないようです。引用符で囲む必要があります。ただし、この問題ではない場合でも、同じ行に表示されるすべての単語(またはすべての種類)を数字で計算します。それはあなたが望むものではありません。
私はこれを提供する:
grep -wo '[[:alnum:]]*[0-9][[:alnum:]]*' filename.txt | wc -w
ゼロ個以上のアルファベット文字、その後に少なくとも1つの数字、ゼロ個以上のアルファベット文字を含む文字列を探します。
この-w
オプションはフルワードのみを計算します。この-o
オプションは各一致をその行に配置し、一致のみを印刷するため、同じ行に他の単語は表示されません。wc -w
言葉を数えてください。