text.sh
#!/bin/bash
# 自定义变量 chars 变量存储字符个数,自定义变量 words 变量存储单词个数
# awk 内置变量 NR 存储行数
# length()为 awk 内置函数,用来统计每行的字符数量,因为每行都会有一个隐藏的$,所以每次统计后都+1
# wc 程序会把文件结尾符$也统计在内,可以使用 cat ‐A 文件名,查看该隐藏字符
awk '{chars+=length($0)+1;words+=NF} END{print NR,words,chars}' $1
验证:
[root@logstash ~]# cat -A 1.txt
01 04 11 28 31 32 16$
04 07 08 18 23 24 02$
02 05 06 16 28 29 04$
04 19 22 27 30 33 01$
05 10 18 19 30 31 03$
02 06 11 12 19 29 06$
[root@logstash ~]# sh text.sh 1.txt
6 42 132
[root@logstash ~]#