linux基本功系列之wc命令实战

news2025/1/16 5:45:33

在这里插入图片描述

文章目录

  • 一. wc命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 统计指定文件的行数,单词数,字节数
    • 3.2 统计字节数
    • 3.3 只统计单词数
    • 3.4 统计字符数
    • 3.4 统计行数
    • 3.5 统计最长的行的长度
  • 总结

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. wc命令介绍

wc命令来自于英文词组“Word count”的缩写,其功能是用于统计文件的字节数、单词数、行数等信息,并将统计结果输出到终端界面。

利用wc命令可以很快的计算出准确的单词数及行数,评估出文本的内容长度,要想了解一个文件,就可以使用这个命令。
wc 命令有很多坑,比如:

1. 为什么 -m 参数统计字符的时候,发现统计出来的字符数永远比实际的多一个?
2. 为什么 wc -w参数统计单词量,统计出来的结果比实际的少很多?

本文依次来给你揭秘

二. 语法格式及常用选项

关于wc常用的参数,我们还是使用 wc --help来查看:

.
[root@mufenggrow test]# wc --help
用法:wc [选项]... [文件]...
 或:wc [选项]... --files0-from=F
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified.  With no FILE, or when FILE is -,
read standard input.  A word is a non-zero-length sequence of characters
delimited by white space.
The options below may be used to select which counts are printed, always in
the following order: newline, word, character, byte, maximum line length.
  -c, --bytes            print the byte counts
  -m, --chars            print the character counts
  -l, --lines            print the newline counts
      --files0-from=文件	从指定文件读取以NUL 终止的名称,如果该文件被
					指定为"-"则从标准输入读文件名
  -L, --max-line-length	显示最长行的长度
  -w, --words			显示单词计数
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出


在这里插入图片描述

此处出现的几个单词:

  • character

在这里插入图片描述

  • maximum
    在这里插入图片描述

  • sequence

  • 在这里插入图片描述

  • specify

  • 在这里插入图片描述

  • file
    在这里插入图片描述

三. 参考案例

3.1 统计指定文件的行数,单词数,字节数

此时不需要加任何参数 Print newline, word, and byte counts for each FILE

[root@mufenggrow test]# wc passwd 
  44   89 2323 passwd

一共46行,89个单词数,2376个字节数

这里有个疑问: 重复的单词数,算一个还是多个。

[root@mufenggrow test]# echo  test >> c.txt
[root@mufenggrow test]# echo  test >> c.txt
[root@mufenggrow test]# cat c.txt
test
test
[root@mufenggrow test]# wc c.txt 
 2  2 10 c.txt

可以看到,这里显示的两行,两个单词,10个字符。

但当我们统计/etc/passwd的时候,你会发现wc统计出来的单词数和实际单词数不想等,这是因为:

wc命令默认单词和单词的区别是以空格为标准的,也就是说只有空格隔开的两个单词,它才会认为是两个单词,要是没有隔开,它就认为是一个单词,所以结果和你预想的不一样!

3.2 统计字节数

-c 参数,主要用来统计字节数,我们看下如下案例:

## 登录到/etc/init.d。查看是否为符号链接
[root@master ~]# wc -w docker-ce.repo
93 docker-ce.repo

前面的93就是统计出来的字节数

3.3 只统计单词数

-w用于统计单词数,这里统计的与上面的一样,单词之间需要以空格为分隔符。

root@mufenggrow init.d]# pwd
[root@master ~]# wc -w docker-ce.repo
93 docker-ce.repo

3.4 统计字符数

-m参数用于统计字符数:

[root@mufenggrow test]# touch a.txt
[root@mufenggrow test]# echo "aaa c"> a.txt 
[root@mufenggrow test]# cat a.txt 
aaa c
[root@mufenggrow test]# wc -m a.txt 
6 a.txt

这里有个疑问: 文本中我们一共输入了5个字符,统计出来为什么是6个字符?

我们其实应该以计算机的视角来查看到底有几个字符:

[root@mufenggrow test]# cat -A a.txt
aaa c$

当我们使用cat -A参数,发现,的确是六个字符,因为在C后面有个 $

3.4 统计行数

只统计行数可以使用-l参数, 注意这里的-l是大写L的小写字母,千万不要错当成I(小写i的大写)

这里可以用三种方法来统计行数:

[root@mufenggrow test]# wc -l passwd
44 passwd
[root@mufenggrow test]# wc -l < passwd
44
[root@mufenggrow test]# cat passwd |wc -l
44
[root@mufenggrow test]# 

3.5 统计最长的行的长度

这里需要使用的是-L参数,-L 可以输出最长的行的长度

[mufeng@localhost ~] wc -L /etc/passwd 
99 /etc/passwd

总结

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Norbit多波束(iWBMS)和前视声纳(WBMS FLS)的使用简介

Norbit多波束&#xff08;iWBMS&#xff09;是最近两年崛起的轻量级多波束产品&#xff0c;它的换能器是弧形的&#xff0c;与我们平常所见的Reson7125、T50P以及EM2040D的平面换能器不同。它的水下单元集成POS MV&#xff08;Position and Orientation Systems for Marine Ves…

JVM【性能监控与调优】

概述 大厂面试题 支付宝&#xff1a; 支付宝三面&#xff1a;JVM性能调优都做了什么&#xff1f; 小米&#xff1a; 有做过JVM内存优化吗&#xff1f; 从SQL、JVM、架构、数据库四个方面讲讲优化思路 蚂蚁金服&#xff1a; JVM的编译优化 jvm性能调优都做了什么 JVM诊…

Ubuntu下为可执行文件和脚本文件(.sh)生成桌面快捷方式

1、前言在Ubuntu中&#xff0c;有些软件是安装的&#xff0c;如deb的安装包&#xff0c;用dpkg -i安装。 有些软件可能是不需要安装&#xff0c;直接解压tar.gz这类文件直接就可以运行了。 但是每次运行的时候都要输入一遍命令十分麻烦&#xff0c;因此想把它建个快捷方式放到桌…

动态规划算法刷题笔记【状压dp】

二进制枚举子集 a&1 1 判断是否为奇数&#xff0c;如果为1&#xff0c;则为奇数因为奇数二进制末位一定是1&#xff0c;所以 与1 得到的结果是1 例 这里&#xff0c;1<<14——214——第15位是1&#xff0c;可以表示14个1 i&&#xff08;1<<j&#xff09;…

Linux|奇怪的知识---CPU温度监控

前言&#xff1a; 最近我的台式机电脑CPU风扇由于积灰严重&#xff0c;噪音比较大&#xff0c;因此更换了CPU风扇。 更换比较简单没什么好说的&#xff0c;但我想清楚的知道我的CPU温度到底是多少&#xff0c;进而知道这个新风扇是否能给CPU一个清凉的环境&#xff0c;因此需…

20230125使AIO-3568J开发板在Android12下默认为简体中文

20230125使AIO-3568J开发板在Android12下默认为简体中文 2023/1/25 10:05 缘起&#xff1a;国人还是喜欢看简体中文的菜单&#xff01;^_ 百度搜索&#xff1a;rk3568 android 12 中文 CSDN&#xff1a;rk3568 ANDROID11 中文 1、build/make/target/product/full_base.mk Z:\an…

Mongodb下载与安装

Mongodb下载https://pan.baidu.com/s/1mFRK3Cn0jW_ysmC9HaGvzg 提取码&#xff1a;0068 下载完成后解压&#xff1b; 设置数据存储位置&#xff1a; bin目录新建文件夹&#xff1a; data下再新建db文件夹&#xff1a; bin目录下cmd&#xff1b; 设置数据存储位置&#x…

centos7安装RocketMQ教程

安装rocketmq 安装RocketMQ首先你的系统上得有JDK的环境&#xff0c;最低1.8 安装JDK 这里我以centos7为例进行安装 #64位 wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24http%3A%2F%2Fwww.oracle.com%2F; oraclelicenseaccept-securebackup-co…

为 TDesignBlazor 添加暗黑模式

本文将讲述我为 TDesignBlazor 开源项目提交 PR 的经历&#xff0c;主要介绍暗黑模式功能的实现以及之后如何在项目中使用。我将会分享我在实现这一功能时遇到的问题&#xff0c;以及我是如何解决这些问题的。我希望通过我的经历能够鼓励更多的人参与开源项目&#xff0c;为 TD…

CE训练教程进阶,步骤 9: 注入++

目录 一、找出存放四个玩家健康值的地址 二、找出修改数据的代码 三、找出是谁调用了修改指令 四、分析玩家的内存数据 五、注入修改代码 六、C语言代码注入 相对于前面8个步骤&#xff0c;步骤9稍微要难一点&#xff0c;所以单独写。 步骤9是在步骤7的基础上&#xff0c…

Flowable进阶学习(六)网关

文章目录排他网关案例&#xff1a;并行网关案例&#xff1a;包容网关案例&#xff1a;事件网关网关(gateway)用来控制流程的流向。来实现复杂的审批流程。网关的分类包括&#xff1a;排他网关、并行网关、包容网关、事件网关。排他网关 exclusive gateway也成为异域网关XORgat…

Python数据可视化之图表组成元素

1.1绘制 matplotlib 图表组成元素的主要函数matplotlib 是如何组织内容的&#xff1f;在一个图形输出窗口中&#xff0c;底层是一个 Figure实例&#xff0c;我们通常称之为画布&#xff0c;包含一些可见和不可见的元素。在画布上&#xff0c;自然是图形&#xff0c;这些图形就是…

Allegro如何自动居中走线操作指导

Allegro如何自动居中走线操作指导 Allegro支持自动将走线居中到两个孔的中间,避免手动去调整的麻烦,类似下图 具体操作如下 点击Spread Between VoidsOptions选择需要居中走线的层面,并且Void clearance输入0

OpenGL ES着色器语言(GLSL ES)规范 ——上篇

文章目录前言OpenGL ES基础一段基本的着色器代码大小写和分号数据值类型、命名规范、类型转换运算符矢量和矩阵矢量和矩阵类型矢量构造、访问矩阵构造、访问矢量矩阵运算规则特殊类型—结构体和数组结构体数组取样器总结前言 着色器语言通过控制GPU来进行前端图形的渲染&#…

《深入浅出计算机组成原理》学习笔记 Day10

浮点数与定点数1. 浮点数的不精确性2. 定点数的表示3. 浮点数的表示参考1. 浮点数的不精确性 32 比特只能表示 2 的 32 次方个不同的数&#xff0c;差不多是 40 亿个。如果表示的数超过能表示总的个数&#xff0c;那么就会有两个不同的数的二进制表示是一样的。计算机就会不知…

【深度学习炼丹】不平衡样本的处理

目录&#xff1a;不平衡样本的处理一、前言二、数据层面处理方法2.1 数据扩充2.2 数据&#xff08;重&#xff09;采样2.3 类别平衡采样三、算法&#xff08;损失函数&#xff09;层面处理方法3.1 Focal Loss3.2 损失函数加权四、参考资料一、前言 在机器学习的经典假设中往往…

VMWare 移动Linux CentOS 7虚拟机后连不上网怎么办

研究hadoop的时候发现虚拟机太大了&#xff0c;于是把3台节点的虚拟机剪切粘贴到移动硬盘上&#xff0c;但是出现了上不了网的问题 VMWare 移动Linux CentOS 7虚拟机后连不上网&#xff0c;ifconfig命令只出现lo不出现有IP地址的ens33&#xff0c;jps命令也出现了jps command …

机器学习模型搭建与评估

模型搭建和评估第三章 模型搭建和评估--建模模型搭建任务一&#xff1a;切割训练集和测试集任务二&#xff1a;模型创建任务三&#xff1a;输出模型预测结果第三章 模型搭建和评估-评估模型评估任务一&#xff1a;交叉验证任务二&#xff1a;混淆矩阵任务三&#xff1a;ROC曲线…

python爬虫学习笔记-mysql数据库介绍下载安装

数据库概述 为什么要使用数据库&#xff1f; 那我们在没有学习数据库的时候&#xff0c;数据存放在json或者磁盘文件中不也挺好的嘛&#xff0c;为啥还要学习数据库&#xff1f; 文件中存储数据&#xff0c;无法基于文件直接对数据进行操作或者运算&#xff0c;必须借助python将…

IDEA搭建Finchley.SR2版本的SpringCloud父子基础项目-------Ribbon负载均衡

1.概念 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说&#xff0c;Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法&#xff0c;将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配…