Bash Shell统计文件的行数、单词数或字符数

Bash Shell统计文件的行数、单词数或字符数,你想知道指定文件有多少行、多少个单词以及多少个字符。

解决方案

在命令替换中使用 wc(word count,单词统计)命令。

wc 的正常输出如下所示:

$ wc data_file
       5     15        60 data_file

# 只显示行数
$ wc -l data_file
       5 data_file

# 只显示单词数
$ wc -w data_file
      15 data_file

# 只显示字符数(通常等同于字节数)
$ wc -c data_file
      60 data_file

# 注意文件大小为60B
$ ls -l data_file
-rw-r--r--  1 jp  users   60B Dec    6 03:18 data_file

你可能想按照以下方式来做:

data_file_lines=$(wc -l "$data_file")

这不会如你所愿,因为得到的是 “5 data_file” 这样的值。你可能还会看到:

data_file_lines=$(cat "$data_file" | wc -l)

丢掉毫无必要的 cat 吧,使用以下命令来避免文件名问题。

data_file_lines=$(wc -l < "$data_file")

讨论

如果你使用的 wc 版本支持语言环境,在某些字符集中,文件的字符数量并不等于字节数量。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!