统计命令汇总

适用于Unix体系

关于wc命令

Word Count 用于统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

wc -lcw

  • c 统计字节数

  • l 统计行数

  • m 统计字符数,此标志不能与-c标志一起使用

  • w 统计字数。一个字定义为由空白、跳格或换行字符分隔的字符串


统计某文件夹下的文件数量

ls -l | grep "^-" | wc -l

grep "^-" : 将ls -l长列表输出信息过滤一部分,只保留一般文件;

如果只保留目录就是 ^d

wc -l: 统计输出信息的行数, 因为已经过滤得只剩一般文件了,又由于一行信息对应一个文件, 所以结果也就是文件的个数


统计某文件夹下的目录的数量(即文件夹的数量)

ls -l | grep "^d" | wc -l


统计文件夹下文件的个数,包括子文件

ls -lR | grep "^-" | wc -l

-R为 递归子文件夹

wc -l: 统计输出信息的行数, 因为已经过滤得只剩一般文件了,又由于一行信息对应一个文件, 所以结果也就是文件的个数


统计文件夹下目录个数,包括子目录

ls -lR | grep "^d" | wc -l


使用脚本 统计文件夹下所有文件的总字符数

bash 复制代码
#!/bin/bash
files=$(ls)

all=0
for i in $files; do
 #忽略该脚本本身包含的字符
  if [ $i != 'wc.sh' ]; then
    head -n1 $i
    t=$(wc -m $i | cut -d ' ' -f5)
    all=$(($all+$t))
    echo '  统计字数: '$t
  fi
done

echo '共计字数'$all

该脚本其实有问题,因为cut -d ' ' -f5并不一定恰好能拿到wc统计出的字符数量

用wc命令怎么做到只打印统计数字不打印文件名

可以使用cat test.txt |wc -l 替代wc -l test.txt,这样就解决了这个问题~

修正后的脚本如下:

bash 复制代码
#!/bin/bash
files=$(ls)

all=0
for i in $files; do
 #忽略该脚本本身包含的字符
  if [ $i != 'wc.sh' ]; then
    head -n1 $i
    t=$(cat $i | wc -m )
    all=$(($all+$t))
    echo '  统计字数: '$t
  fi
done

echo '共计字数'$all

再为其添加判断,忽略掉当前文件夹下的目录,只统计纯文件

bash 复制代码
#!/bin/bash
files=$(ls)

all=0
for 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
  fi
done

echo ""
echo ""
echo '共计字数'$all

共601篇博客,字数共计 1655265

相关推荐
SomeB1oody4 小时前
【RustyML入门】6.3. 并行归约
开发语言·后端·机器学习·rust·教程
Profile排查笔记4 小时前
指纹浏览器哪个好?从 Profile、代理、权限和自动化能力判断是否适合
前端·人工智能·后端·自动化
用户938515635075 小时前
用 AI 结对编程从 0 搭一个"单词后台管理系统":Next.js + Supabase + Drizzle + shadcn/ui 全记录
后端·postgresql·next.js
ltl5 小时前
QUIC 握手实现:Initial 到 1-RTT 的最小路径
linux
爱学习的小邓同学5 小时前
Golang --- (1)第一个Golang程序
开发语言·后端·golang
小灰灰搞电子6 小时前
Rust+Slint 实现的“DNA双螺旋”加载动画源码分享
后端·rust·slint·加载动画
面向Google编程6 小时前
向量库不再囤数据:Milvus 3.0 零拷贝直读数据湖
后端
Android系统攻城狮7 小时前
Linux PipeWire深度解析之pw_init调用流程与实战(八十三)
linux·运维·服务器·音频进阶·pipewire音频进阶
M78佐菲7 小时前
Linux学习笔记:进程
linux·笔记·学习·算法
IT_陈寒8 小时前
Redis内存警告竟是因为这个不起眼的配置项
前端·人工智能·后端