Linux中WC命令简介
Contents
1. 简介
本教程将讨论 Linux *wc *命令。我们将介绍一些基本用法以及一些更高级的示例。
2. 基本用法
wc是一个方便的实用程序,用于计算提供的输入(文件列表或标准输入)的字数、行数或字节数。让我们来看看一些基本的用法。
我们将从示例文件开始:
% cat colors.txt
Red Orange
Purple
Green
Brown
Blue
Black
首先,让我们获取文件中的行数:
% wc -l colors.txt
6 colors.txt
我们还可以进行字数统计:
% wc -w colors.txt
7 colors.txt
我们还可以计算文件中的字符数:
% wc -m colors.txt
41 colors.txt
由于我们在一个文本文件中,字节计数产生相同的数字:
% wc -c colors.txt
41 colors.txt
3. 结合wc和 grep
将wc与其他 Linux 命令结合使用 可以让我们执行一些有用的任务。 结合grep ,wc给出一组文件中出现的次数。
例如,假设我们需要计算出在多个日志文件中发生了多少特定类型的错误。
让我们看看我们的第一个示例日志文件:
% cat log_mon.txt
12:31: error - broken pipe
12:33: warn - missing input
12:35: error - broken pipe
12:37: error - service down
12:39: warn - retry failed
现在,我们的第二个:
% cat log_tues.txt
12:41: error - broken pipe
12:43: warn - missing input
12:45: error - broken pipe
12:49: warn - retry failed
如果我们 使用 -c标志执行grep,我们将按文件分类:
% grep -c "broken pipe" log*.txt
log_mon.txt:2
log_tues.txt:2
但是为了获得总计数,我们使用 wc和 -l(行数)选项:
% grep "broken pipe" log*.txt | wc -l
4
grep将所有结果发送到标准输入,而wc对该输入执行行计数。
4. 结合wc和find
% find ./src/main -name "*.java" | xargs wc -l
18 ./src/main/java/com/blogdemo/lombok/getter/GetterBooleanPrimitiveSameAccessor.java
16 ./src/main/java/com/blogdemo/lombok/getter/GetterBooleanPrimitive.java
13 ./src/main/java/com/blogdemo/lombok/getter/GetterBooleanSameAccessor.java
15 ./src/main/java/com/blogdemo/lombok/getter/GetterBoolean.java
15 ./src/main/java/com/blogdemo/lombok/getter/GetterBooleanType.java
36 ./src/main/java/com/blogdemo/lombok/intro/GetterLazy.java
16 ./src/main/java/com/blogdemo/lombok/intro/HasContactInformation.java
43 ./src/main/java/com/blogdemo/lombok/intro/User.java
22 ./src/main/java/com/blogdemo/lombok/intro/ApiClientConfiguration.java
11 ./src/main/java/com/blogdemo/lombok/intro/ClientBuilder.java
25 ./src/main/java/com/blogdemo/lombok/intro/LoginResult.java
29 ./src/main/java/com/blogdemo/lombok/intro/UserEvent.java
26 ./src/main/java/com/blogdemo/lombok/intro/Utility.java
17 ./src/main/java/com/blogdemo/lombok/intro/ContactInformationSupport.java
11 ./src/main/java/com/blogdemo/lombok/intro/ImmutableClient.java
39 ./src/main/java/com/blogdemo/lombok/builder/customsetter/Message.java
25 ./src/main/java/com/blogdemo/lombok/builder/singular/Person.java
14 ./src/main/java/com/blogdemo/lombok/builder/singular/Sea.java
17 ./src/main/java/com/blogdemo/lombok/builder/defaultvalue/Pojo.java
19 ./src/main/java/com/blogdemo/lombok/builder/inheritance/buildermethodname/Child.java
10 ./src/main/java/com/blogdemo/lombok/builder/inheritance/buildermethodname/Parent.java
16 ./src/main/java/com/blogdemo/lombok/builder/inheritance/buildermethodname/Student.java
11 ./src/main/java/com/blogdemo/lombok/builder/inheritance/superbuilder/Child.java
11 ./src/main/java/com/blogdemo/lombok/builder/inheritance/superbuilder/Parent.java
10 ./src/main/java/com/blogdemo/lombok/builder/inheritance/superbuilder/Student.java
11 ./src/main/java/com/blogdemo/lombok/builder/ClientBuilder.java
11 ./src/main/java/com/blogdemo/lombok/builder/ImmutableClient.java
13 ./src/main/java/com/blogdemo/lombok/builder/Widget.java
520 total