今天我们来了解下wc命令的用法。
1、基本用法
wc命令是用来统计文件的行数、字节数等。其用法如下:
wc [-lcmw] [file...]
-l 统计行(line)数
-w 统计字(word)数
-c 统计字节(character)数
我们写个脚本试验下:
#!/bin/bash
if [ $# -gt 0 ]; then
filename=$1
else
filename="027_function1.sh"
fi
echo `wc $filename`
echo $(wc -l $filename)
echo $(wc -w $filename)
echo $(wc -c $filename)
运行结果如下:
$ sh 033_wc.sh 020_for_char3.sh
6 9 42 020_for_char3.sh
6 020_for_char3.sh
9 020_for_char3.sh
42 020_for_char3.sh
2、扩展用法1---统计多个文件
可以直接wc后面接多个文件名,来统计多个文件:
$ wc 01*
4 6 50 010_envvar.sh
4 8 49 011_declare.sh
8 20 116 012_if.sh
10 23 137 013_if.sh
12 32 185 014_if.sh
16 21 122 015_case.sh
21 51 301 016_while.sh
21 51 301 017_until.sh
6 13 54 018_for_char1.sh
7 14 80 019_for_char2.sh
109 239 1395 total
3、不显示文件名,只显示结果
$ cat 011_declare.sh | wc -l
4
4、统计文件个数和代码行数
统计当前目录下所有.sh文件的文件个数:
$ find ./ -name "*.sh" | wc -l
33
统计当前目录下所有.sh文件的行数:
$ find ./ -name "*.sh" | xargs wc -l
12 ./014_if.sh
25 ./029_function3.sh
16 ./005_var.sh
21 ./017_until.sh
11 ./008_specialvar.sh
6 ./018_for_char1.sh
12 ./030_files/032-file3.sh
16 ./030_files/031-file2.sh
16 ./030_files/030-file1.sh
21 ./016_while.sh
16 ./015_case.sh
9 ./027_function1.sh
8 ./023_for_dig2.sh
16 ./007_specialvar.sh
13 ./033_wc.sh
6 ./021_for_char4.sh
9 ./028_function2.sh
5 ./001_helloworld.sh
8 ./022_for_dig1.sh
6 ./025_for_file1.sh
4 ./011_declare.sh
13 ./003_comment.sh
5 ./006_readonlyvar.sh
6 ./020_for_char3.sh
8 ./024_for_dig3.sh
8 ./012_if.sh
4 ./009_envvar.sh
4 ./010_envvar.sh
6 ./026_for_file2.sh
13 ./004_comment.sh
10 ./013_if.sh
7 ./019_for_char2.sh
8 ./002_comment.sh
348 total
统计当前目录下所有.sh文件的行数(直接得到结果):
$ find ./ -name "*.sh" | xargs cat | wc -l
348
统计当前目录下所有.sh文件的行数,不包含空行:
$ find ./ -name "*.sh" | xargs cat | grep -v ^$| wc -l
281
好了,写到这里是不是发现wc的功能还挺多?
好了,今天的部分就到这里了,接下来的Shell脚本之旅会更久精彩!
===================================================================================
注意:本文为本人原创,版权所属为个人所有,欢迎转载,但是转载请注明出处。
===================================================================================