命令简介

wc 是一个在 Linux 系统中用于计数的工具,它可以计算文件或标准输入中有多少行、多少个单词和多少个字符。无论是对文本文件进行统计分析,还是在脚本编程中对数据进行处理,wc 命令都是一个非常有用的工具。

命令格式

1
wc [选项] [文件名]

参数说明

参数 描述 备注
-c 只计算字节数 -
-m 只计算字符数 -
-l 只计算行数 -
-w 只计算单词数 -
-L 打印最长行的长度 -

命令实例

基本用法

1.统计行数、单词数和字节数

1
2
3
4
5
# 统计单个文件的行数、字数和字节数
wc file.txt

# 统计多个文件的行数、字数和字节数
wc file1.txt file2.txt file3.txt

输出格式为: 行数 单词数 字节数 文件名

2.只统计行数

1
wc -l file.txt

3.统计单词数

1
wc -w file.txt

4.只统计字节数

1
wc -c file.txt

5.统计最长行的长度

1
wc -L file.txt

高级用法

1.统计目录下所有文件

可以结合 find 命令统计整个目录树下所有文件的行数、单词数等。

1
find . -type f | xargs wc -l   # 或者 wc -l $(find . -type f)

该命令会递归查找当前目录下所有文件,并计算它们的总行数。

2.统计命令输出

wc 不仅可以统计文件内容,还可以统计其他命令的输出。

1
2
ps aux | wc -l  # 统计进程数
netstat -nat | wc -l # 统计 TCP 连接数

3.文本分析统计

结合其他命令,wc 可以用于对文本内容进行各种统计分析。

1
2
3
4
5
6
7
# 统计文件中出现次数最多的 10 个单词
cat file.txt | tr -s ' ' '\n' | sort | uniq -c | sort -nr | head -n 10

# 统计行的最大/最小/平均长度
wc -L file.txt # 最长行
wc -c file.txt | awk '{print $1}' | sort -n | head -n 1 # 最短行
wc -c file.txt | awk '{sum+=$1} END {print sum/NR}' # 平均行长

4.进度条显示

wc 命令可以用于实现一个简单的进度条显示效果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash

count=0
total=$(wc -l < file.txt)

while read line
do
count=$((count+1))
percent=$((100*count/total))
printf "Processing: %3d%%\r" $percent
# 处理 $line ...
done < file.txt

printf "Done\n"

上面的脚本会在处理文件的每一行时,显示一个简单的进度条。

总之,wc 命令虽然功能比较简单,但在分析文本数据、编写脚本等场景下却可以发挥很大作用。掌握好它及其相关技巧和用法,对于提高日常运维效率是非常有帮助的。如有任何其他疑问,欢迎继续提问。