跟我一起写Shell脚本之十六---命令(wc)

今天我们来了解下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脚本之旅会更久精彩!

===================================================================================

注意:本文为本人原创,版权所属为个人所有,欢迎转载,但是转载请注明出处。

===================================================================================

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值