Linux基础命令@grep、wc、管道符

news2024/9/27 12:09:01

目录

  • grep
    • 概念
    • 语法
    • 作用
      • 演示一
      • 演示二
      • 演示三,带选项 -n
  • wc
    • 概念
    • 语法
    • 作用
      • wc,不带选项
      • -c,统计字节数
      • -m,统计字符数
      • -l,统计行数
      • -w,统计单词数
  • 管道符
    • 语法
    • 作用
      • 演示一
      • 演示二
      • 演示三
      • 演示四
      • 演示五
  • 总结

grep

概念

  grep 是一个在Unix和类Unix系统中广泛使用的文本搜索工具,用于在文件中查找包含特定模式的文本行。其名称来源于"Global Regular Expression Print",最初设计是用于在文本流中查找匹配正则表达式的文本。




语法

grep   [-n]   关键字   文件路径


》选项-n:可选填。作用是在结果中显示匹配的行的行号。
》 关键字:必填。表示过滤的关键字,带有空格或其他特殊符号的,建议使用双引号“ ” 将关键字包围起来。
》文件路径:必填。表示要过滤内容的文件路径,可作为内容的输入端口




作用

通过关键字,筛选出指定文件中想要的内容。


演示一

如下图所示,( 我事先在test.txt文件里,写入如图所示的内容 )通过cat指令获取文件test,txt的内容。
然后使用grep指令,针对test.txt文件,过滤出有 “about” 单词的行,如图所示:

在这里插入图片描述
终端只出现了test.txt文件中有 “about” 单词的行的信息,同时对于指定的“about”关键字着重显示。



演示二

在这里插入图片描述
对test.txt文件过滤出来有 “i” 关键字的行的信息。并且对于关键字着重的显示。



演示三,带选项 -n

在这里插入图片描述
终端出现有“happy” 关键字的行的信息。并且在前面基础上,还多显示了该行在test.txt文件中的第几行。






wc

概念

  wc 是一个在 Unix 和类 Unix 系统中使用的命令,用于统计文件中的字节数、字数和行数。wc 的名称来自 “word count”(单词计数)的缩写,但它不仅仅用于计算单词数量,还提供其他计数选项。




语法

wc  [ -c  -m   -l   -w ]   文件路径


》选项-c:作用是统计bytes字节的数量。
》选项-m:作用是统计字符数量。
》选项-l:作用是统计行(line)数。
》选项-w:作用是统计单词(words)数量。
》文件路径:文件路径,被统计的文件,可作为内容的输入端口




作用

wc,不带选项

如下,使用cat命令,读取test.txt文件的内容为:
this is a test about grep,
and i wish you are happyeveryday.

使用wc命令读test.txt文件,如下:
在这里插入图片描述
终端显示: 2   13   62   test.txt
从左到右,一次代表的信息为:读取文件的行数、读取文件的单词数根据空格做单词判断的依据)、读取文件的字节数、读取文件的文件名

那么信息对不对,是不是呢?
对于行数和单词数,我们可以肉眼统计出来,而有多少个字节数,如果嫌麻烦,我们可以通过命令 “ ls -l ” 进行查看,如下:

在这里插入图片描述

如上,test.txt文件的大小有62个字节,即test.txt文件内有62个字节数。验证正确。



-c,统计字节数

在这里插入图片描述
如上,使用选项 -c,可以单独在终端显示搜索文件的字节数。



-m,统计字符数

在这里插入图片描述
如上,使用选项 -m 可以单独显示test.txt文件内容的字符数。


注意:
要区分字节和字符这两个概念:
字节:一个字节是计算机存储的基本单位,通常由8个比特(bits)组成,每个比特可以表示二进制的0或1。字节的最小地址able单元,是计算机中数据传输和存储的基本块,在计算机系统中,存储器、文件大小、网络传输等通常以字节为单位。

字符:字符通常是指人类可读的文本中的一个单元,例如字母、数字、标点符号等,字符可以由一个或多个字节组成,具体取决于所使用的字符编码。计算机中常见的字符编码包括ASCII(一个字节表示一个字符)、UTF-8、UTF-16等。UTF-8使用1到4个字节表示一个字符,而UTF-16使用2或4个字节。



-l,统计行数

在这里插入图片描述
如上,使用选项 -l 可以单独显示test.txt文件内容有多少行数。



-w,统计单词数

在这里插入图片描述
如上命令,使用选项 -w 可以单独显示test.txt文件内容有个单词。




管道符

语法

|

》 管道符 “ | ” ,左边的输出结构,作为右边的输入。




作用

演示一

在这里插入图片描述
如上,我们用通过cat命令获取文件test,txt的内容。
接着我们使用管道符,管道符的左边依旧是上述的命令,而管道符的右边是用来统计有多少行数的命令 “wc -l”。如下:

在这里插入图片描述
和前面对test.txt文件进行统计有多少行的结果是一样的。这其中还涉及到一个知识点,就是前面对于“ wc ”语法那里对于 ‘ 文件路径 ’的解释:参数‘ 文件路径 ’ 可以作为内容的输入端口有关。

  当管道符右边,统计文件或内容中有多少行的命令“ wc -l ” 中缺少文件路径或内容输入,那么管道符左边的结果,将会作为右边 wc 命令的内容输入
  即左边的结果,作为了右边的第二个参数。可以理解为,最终的效果是:
wc  -l   “this is a test about grep,\r\n and i wish you are happy everyday.”

因此对内容,进行统计有多少行,结果显示为2.

注:为了方便理解,用\r\n表示换行。



演示二

以下,我们用 ls 命令的结果,即终端中显示的内容作为结果。
充当管道符右边命令 “ grep ” 的第二个参数。

在这里插入图片描述
结果终端过滤显示出来有 “test” 字符串的内容



演示三

  以上的演示,可能未能体现出这个管道符的妙用之处,因为上述中对于管道符左边的内容都很少,少到即便是人为去统计都能统计出来。可是,如果你选择要过滤的文件特别特别多呢?而你只需要找到有指定的内容即可,显然再靠人为去寻找、统计是不切实际的,这时便是该管道符的发挥之处了,如下:

在这里插入图片描述
如上,命令 “ ls   -l   /usr/bin   |   grep   gtf ”,表示对 /usr/bin 文件的全部内容,筛选过滤出有 “gtf” 字符串的内容。结果:
终端便只显示了带有“gtf”的信息。
注:需要留意终端的显示格式,以上是用ls -l 的格式去显示的



同样的,我们可以统计一下这个文件具体有多少行,如下:
在这里插入图片描述

终端显示结果为1720,即该文件用 ls -l 展开时拥有1720的行数。想想,如果没有管道符这个工具,对于这个量级再人为去找,那可就不太礼貌了。



演示四

管道符还可以多重使用。如下:

在这里插入图片描述
“ cat  test.txt” 的结果作为 “ grep this ” 的内容输入,
“ cat   test.txt   |   grep   this ” 又可以作为 “ grep a ” 的内容输入。
结果终端显示如上,
“ cat test.txt | grep this ”结果为:“ this is a test about grep”。
最终命令为: grep   a   “ this is a test about grep”
结果显示如上,对于输入内容过滤出有关键字 “ a ”的行数,并且着重显示关键字。



演示五

在这里插入图片描述




总结

1、grep

》从文件中通过关键字过滤文件行。
》语法:grep   [-n]   关键字   文件路径
》选项-n,可选填。表示在结果中显示匹配的行的行号。
》参数:关键字,必填。表示过滤的关键字,建议使用双引号” ”将关键字包围起来。
》参数:文件路径,必填。表示要过滤内容的文件路径,可作为管道符的输入


2、wc

》命令计文件的行数、单词数量、字节数、字符数等。
》语法: wc   [ -c -m -l -w ]   文件路径
》不带选项默认统计:行数、单词数、字节数
》-c 字节数、-m 字符数、-l 行数、-w 单词数
》参数:被统计的文件路径。可作为管道符的输入


3、管道符

》将管道符左边命令的结果,作为右边命令的输入

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

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

相关文章

十一、工具盒类(MyQQ)(Qt5 GUI系列)

目录 ​编辑 一、设计需求 二、实现代码 三、代码解析 四、总结 一、设计需求 抽屉效果是软件界面设计中的一种常用形式,可以以一种动态直观的方式在有限大小的界面上扩展出更多的功能。本例要求实现类似 QQ 抽屉效果。 二、实现代码 #include "dialog.…

web前端开发技术复习问答题

目录 1.简述常见单标签和双标签有哪些? 2.常见块级元素和行级元素有哪些? 3.简述常见的列表有哪些?他们有什么区别? 4.简述超链接的href属性值如何设置?有什么区别 5.CSS基本语法 6. css中常见的引入方式有几种&…

共聘猫品牌创始人杨涛宾:从海关到人力资源行业的华丽转身

专访山东共聘猫教育科技集团董事长杨涛宾 2024新年的第一次人物专访,我们来到山东济南。大力财经的采访对象是创业者杨涛宾,他是山东共聘猫教育科技集团董事长,也是共聘猫品牌创始人和主要打造者。 我们面前的杨涛宾外表朴实,举…

图神经网络入门

图神经网络(GNN)是一组在图领域工作的深度学习方法。 这些网络最近已应用于多个领域,包括: 组合优化、推荐系统、计算机视觉—仅举几例。 这些网络还可用于对大型系统进行建模,例如社交网络、蛋白质-蛋白质相互作用网络…

使用docker镜像快速构建TVM

TVM docekr编译 文章目录 TVM docekr编译使用云镜像使用docker进行本地构建 使用云镜像 下载docker镜像 如果对docker指令不熟悉可以查阅: docker cli命令行 AP I TVM docker hub镜像 docker pull tlcpack/ci-cpu:20230604-060130-0af9ff90e运行container docker…

Java面试——框架篇

1、Spring框架中的单例bean是线程安全的吗? 所谓单例就是所有的请求都用一个对象来处理,而多例则指每个请求用一个新的对象来处理。 结论:线程不安全。 Spring框架中有一个Scope注解,默认的值就是singleton,单例的。一…

Java学习——设计模式——行为型模式2

文章目录 行为型模式状态模式观察者模式中介者模式迭代器模式访问者模式备忘录模式解释器模式 行为型模式 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,涉及算法与对象间职责的…

kubernetes(六)

文章目录 1. k8s架构2. k8s安装2.1 颁发证书2.2 部署etcd集群2.3 master节点安装2.3.1 api-server服务安装2.3.2 controller-manager服务安装2.3.3 scheduler服务安装 2.4 node节点安装2.5 配置flannel网络 1. k8s架构 2. k8s安装 # 增加免密操作 [rootk8s-node3 ~]# ssh-keyge…

搭建一个教育小程序的必要步骤

随着科技的飞速发展,小程序已经深入到我们生活的方方面面。对于教育行业来说,小程序的出现不仅为教育机构提供了新的宣传和互动平台,更为学生和家长带来了更为便捷的学习体验。那么,如何开发一款适合教育机构的小程序呢&#xff1…

react+AntDesign 之 pc端项目案例

1.环境搭建以及初始化目录 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start2.安装SCSS SASS 是一种预编译的 CSS,支持一些比较高级的语法,…

鸿蒙OS:不止手机,是物联网应用开发

鸿蒙开发是华为自主研发的面向全场景的分布式操作系统,旨在将生活场景中各类终端进行整合,实现不同终端设备间的快速连接、资源共享、匹配合适设备、提供流畅的全场景体验。 鸿蒙开发具有以下特点: 面向全场景:鸿蒙系统能够覆盖…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-3流体系统建模

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-12课程介绍电路系统建模、基尔霍夫定律 流量 flow rate q q q m 3 / s m^3/s m3/s 体积 volume V V V m 3 m^3 m3 高度 heigh h h h m m m 压强 pressure p p p …

竞赛练一练 第23期:NOC大赛每日一练,python题目刷题第8天,包含答案解析

题目来自:NOC 大赛创客智慧编程赛项Python 复赛模拟题(二) NOC大赛创客智慧编程赛项Python 复赛模拟题(二) 第一题: 编写一个成绩评价系统,当输入语文、数学和英语三门课程成绩时,输出三门课程总成绩及其等级。 (1)程序提示用户输入三个数字,数字分别表示语文、数学、…

Vue3使用Pinia

1.安装 npm i pinia 2.搭建架子文件 2.1main.js import { createApp } from vue // 引入pinia import { createPinia } from piniaimport App from ./App.vue import router from ./router // 创建pinia const app createApp(App) //安装pinia app.use(createPinia())app.use(…

线程安全、共享变量的可见性

Java中的线程安全问题 谈到线程安全问题,我们先说说什么是共享资源。所谓共享资源,就是说该资源被多个线程所持有或者说多个线程都可以去访问该资源。 线程安全问题是指当多个线程同时读写一个共享资源并且没有任何同步措施时,导致出现脏数…

适合前后端开发的可视化编辑器(拖拽控件)

分享一个面向研发人群使用的前后端分离的低代码软件——JNPF。 JNPF与市面上其他的低代码(轻流、宜搭、微搭、简道云、轻流、活字格等等),后者更倾向于非编程人员使用,让业务线人员自行构建应用程序。而 JNPF 这款低代码产品是面向…

【STM32学习】硬件CRC与传统CRC-32计算的不同点

硬件CRC与传统CRC-32计算的不同点 1、stm32的硬件CRC32与传统CRC-32有何不同?2、解决办法 1、stm32的硬件CRC32与传统CRC-32有何不同? ①STM32F103的硬件CRC校验是对整个32位字进行CRC计算,传统的CRC-32是逐字节的计算。 ②STM32的硬件CRC32的…

美食管理与推荐系统Python+Django网站系统+协同过滤推荐算法【计算机课设】

一、介绍 美食管理与推荐系统。本系统使用Python作为主要开发语言开发的一个美食管理推荐网站平台。 网站前端界面采用HTML、CSS、BootStrap等技术搭建界面。后端采用Django框架处理用户的逻辑请求,并将用户的相关行为数据保存在数据库中。通过Ajax技术实现前后端的…

【ThreeJS入门——】WEB 3D可视化技术——threejs

简介 网页上已经可以做出很多复杂的动画,精美的效果。下图就是通过WebGL在网页中绘制高性能的3D图形。 threejs是一个让用户通过javascript入手进入搭建webgl项目的类库。 1、搭建第一个场景和物体 三维的物体要渲染在二维的屏幕上。首先要创建一个场景来放置物体…

ASP.NET可视化流程设计器源码

源码介绍: ASP.NET可视化流程设计器源码已应用于众多大型企事业单位。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理等系统开发必须功能,大大为您节省开发时间,是您开发OA.CRM、HR等企事业各种应用管理系统和工作流系统的最佳基…