wcを実行して単語数のみを表示

wcを実行して単語数のみを表示

~/dictwords.txt私はファイルに見つかった単語の数を含むというファイルを作成しようとしました/usr/share/dict/words

ファイルを生成して誤って削除しましたが、最初はechoコマンドを実行しました。それからこのコマンドを試してみて、私が正しいと思ってとても嬉しかったです。

wc -w /usr/share/dict/words > ~/dictwords.txt

まだ間違っています。ファイル名ではなく番号だけが必要です。

答え1

デフォルトでは、wc結果とファイル名が印刷されます。結果だけが必要な場合は、wcstdinから入力を読み取る必要があります。

</usr/share/dict/words wc -w > ~/dicwords.txt

現在のソリューションでは、他のツールを使用して結果のみを取得できますwc(たとえばcutawk... grep)。

wc -w /usr/share/dict/words | cut -d' ' -f1 > ~/dicwords.txt

これは、実装が数字の前にスペース文字を追加しないことを前提としていますが、すべての実装に当てはまるwcわけではありません。wc

答え2

スクリプトで単語数を使用する必要がある場合は、値を変数に保存できます。

numWords=$(wc -w /usr/share/dict/words | tr -dc '0-9')

それ以外の場合はファイルに保存できます。

wc -w /usr/share/dict/words | tr -dc '0-9' > ~/dicwords.txt

答え3

ファイルには/usr/share/dict/words1行に1単語を含める必要があります。一部のシステムでは、1行に1つの「辞書用語」を含めることができ、各用語はスペースで区切られた複数の単語で構成されると思いますが、私はこれを直接見たことがありません。

次のいずれかを使用して行数を取得できます

  • wc -l </usr/share/dict/words(ファイルの改行数を計算します)
  • sed -n '$=' /usr/share/dict/words(最後の行には現在の行番号が出力されます)
  • awk 'END { print NR }' /usr/share/dict/words(入力が終わると読み取ったレコード(行)数が出力されます)
  • grep -c '[^[:space:]]' /usr/share/dict/words(空白以外の(類似)文字を1つ以上含む行数を数えます)

この中で、wc -lバリアントは実際の数字の前後に余分な空白を出力したり、出力しないことがあるため、移植性が最も低いです。

答え4

cat以下は、結果の後にファイル名が印刷されるのを防ぐための使用済みソリューションです。

cat /usr/share/dict/words | wc -w

関連情報