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 ~]#