实用于Unix体系
对于wc命令
Word Count 用于统计指定文件中的字节数、字数、行数,并将统计结果显示输入。
wc [-lcw]
- c 统计字节数
- l 统计行数
- m 统计字符数,此标记不能与-c标记一起应用
- w 统计字数。一个字定义为由空白、跳格或换行字符分隔的字符串
统计某文件夹下的文件数量
ls -l | grep "^-" | wc -l
<font color="#668B8B" size=1>
grep "^-": 将ls -l
长列表输入信息过滤一部分,只保留个别文件;
如果只保留目录就是 ^d
wc -l: 统计输入信息的行数, 因为曾经过滤得只剩个别文件了,又因为一行信息对应一个文件, 所以后果也就是文件的个数
</font>
统计某文件夹下的目录的数量(即文件夹的数量)
ls -l | grep "^d" | wc -l
统计文件夹下文件的个数,包含子文件
ls -lR | grep "^-" | wc -l
<font color="#668B8B" size=1>
-R为 递归子文件夹
wc -l: 统计输入信息的行数, 因为曾经过滤得只剩个别文件了,又因为一行信息对应一个文件, 所以后果也就是文件的个数
</font>
统计文件夹下目录个数,包含子目录
ls -lR | grep "^d" | wc -l
应用脚本 统计文件夹下所有文件的总字符数
#!/bin/bashfiles=$(ls)all=0for i in $files; do #疏忽该脚本自身蕴含的字符 if [ $i != 'wc.sh' ]; then head -n1 $i t=$(wc -m $i | cut -d ' ' -f5) all=$(($all+$t)) echo ' 统计字数: '$t fidoneecho '共计字数'$all
该脚本其实有问题,因为cut -d ' ' -f5
并不一定恰好能拿到wc
统计出的字符数量
用wc命令怎么做到只打印统计数字不打印文件名
能够应用cat test.txt |wc -l
代替wc -l test.txt
,这样就解决了这个问题~
修改后的脚本如下:
#!/bin/bashfiles=$(ls)all=0for i in $files; do #疏忽该脚本自身蕴含的字符 if [ $i != 'wc.sh' ]; then head -n1 $i t=$(cat $i | wc -m ) all=$(($all+$t)) echo ' 统计字数: '$t fidoneecho '共计字数'$all
再为其增加判断,疏忽掉以后文件夹下的目录,只统计纯文件
#!/bin/bashfiles=$(ls)all=0for i in $files; do #疏忽该脚本自身蕴含的字符 if [[ $i != 'wc.sh' ]] && ! [[ -d $i ]]; then head -n1 $i t=$(cat $i | wc -m ) all=$(($all+$t)) echo $i ' 统计字数: '$t fidoneecho ""echo ""echo '共计字数'$all
共601篇博客,字数共计 1655265
本文由mdnice多平台公布