比如想要统计test.txt文件中的内容,内容示例:
{"1":"08","2":"01","name":"yilishaabai","age":"10000"}
{"2":"03","3":"01","name":"yi","age":"10"}
{"3":"05","5":"01","name":"yilish","age":"100"}
{"4":"06","7":"01","name":"yilishaa","age":"1000"}
方法一
$ grep -c "" text.txt
输出:4
解释:-c 或 --count : 计算符合样式的列数。
补充:想要使用grep搜索的内容包含了双引号",此时需要加上反斜杠\,表示转义。比如过滤"yi":
$ grep \"yi\" text.txt
输出:
{"2":"03","3":"01","name":"yi","age":"10"}
方法二
$ grep -n "" text.txt | wc -l //等价于 cat text.txt | wc -l
输出:4
解释:$ grep -n "" text.txt,输出:可以看到行号,如下:
1:{"1":"08","2":"01","name":"yilishaabai","age":"10000"}
2:{"2":"03","3":"01","name":"yi","age":"10"}
3:{"3":"05","5":"01","name":"yilish","age":"100"}
4:{"4":"06","7":"01","name":"yilishaa","age":"1000"}
$ cat -n text.txt //输出显示行号, 等价于nl
1 {"1":"08","2":"01","name":"yilishaabai","age":"10000"}
2 {"2":"03","3":"01","name":"yi","age":"10"}
3 {"3":"05","5":"01","name":"yilish","age":"100"}
4 {"4":"06","7":"01","name":"yilishaa","age":"1000"}
wc命令:用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示行数。
-w或--words 只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
举个例子:
wc -l * # 统计当前目录下的所有文件行数及总计行数。
wc -l *.py # 统计当前目录下的所有 .js 后缀的文件行数及总计行数。
find . * | xargs wc -l # 当前目录以及子目录的所有文件行数及总计行数。
方法三:
$ awk '{print NR}' text.txt | tail -n1 //-n1:显示文件的尾部1行内容,即4
输出:4
解释: $ awk '{print NR}' text.txt //打印序号
1
2
3
4
tail:可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
方法四:
$ awk 'END{print NR}' text.txt
输出:4
方法五:
$ sed -n '$=' text.txt
输出:4