LoginSignup
0
1

More than 5 years have passed since last update.

半角のスペースを区切り文字としてファイル内の単語数を数える

Posted at

テキストファイルの単語数を数えたいことがあると思います。
linuxコマンドではwc -wで単語数を数えることができますが、このコマンドは
区切り文字に半角スペースだけでなく全角のスペースなども含まれてしまっています。
次の例では、区切り文字は半角と全角のスペースの両方が使われています。

$ echo "今日 は いい 天気 です 。" | wc -w 
6

目的によってはこれでいいケースももちろんあると思うのですが、
半角のスペースのみを区切り文字としてファイル内の単語数を数えたい場合があるかもしれません。
私が調べた限りではwcでは区切り文字を指定することはできませんので、awkを使うといいでしょう。

$ echo "今日 は いい 天気 です 。" | awk -F ' ' '{sum+=NF} END {print sum}'
3

この例では単語数の合計を保持する変数sumに対して各行のフィールド数NFを足しています。
-Fでフィールドの区切り文字を設定しています。
ちなみに-Fを省略することもでき、その場合はデフォルトの区切り文字が適用されます。
デフォルトの区切り文字は、半角スペース、タブ、改行文字から成る長さが1以上の文字列です。
ただし、文頭及び文末の区切り文字列は無視されます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1