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 版本支持语言环境,在某些字符集中,文件的字符数量并不等于字节数量。
酷客网相关文章:
评论前必须登录!
注册