Linux学习[19]管线命令详解1---cut, grep, sort, wc, uniq

news2025/1/15 13:02:27

文章目录

  • 1. 何为管线
  • 2. 摘取命令:cut, grep
    • 2.1 cut
    • 2.2 grep
  • 3. 排序命令sort,wc,uniq
    • 3.1 sort
    • 3.2 uniq
    • 3.3 wc
  • 总结

1. 何为管线

管线命令和Linux学习18里面的连续执行指令少许不同。他是只有在前面指令执行正确的时候,才会执行管线命令。
即这个管线命令“ | ”仅能处理经由前面一个指令传来的正确信息,也就是 standard output 的信息,对于 stdandard error 并没有直接处理的能力。

管线命令的执行流程可以使用下面简图表示:

在这里插入图片描述

在每个管线后面接的第一个数据必定是“指令”,而且这个指令必须要能够接受 standard input 的数据才行,这样的指令才可以是为“管线命令”。如 less, more, head, tail 等都是可以接受 standard input 的管线命令啦。至于例如 ls, cp, mv 等就不是管线命令。因为 ls, cp, mv 并不会接受来自 stdin 的数据。 也就是说,管线命令主要有两个比较需要注意的地方:

管线命令仅会处理 standard output,对于 standard error output 会予以忽略
管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。

举一个实操的例子:
我们用 ls /etc 来查阅 /etc/ 下面有多少文件,但由于 /etc 下面的文件太多,并且命令执行完自动会跳转到最后一行去,我们得通过 less 指令的协助。
指令:ls -al /etc | less
在这里插入图片描述

通过鼠标滚轮进行阅览,再通过输入q进行退出。

在这里插入图片描述


2. 摘取命令:cut, grep

之前在对环境变量PATH进行修改与添加的时候,有时候我只想取其中一段进行操作,当时就不知道怎么做,在图形化界面中还好说用鼠标辅助,有些命令行界面就直接蒙了。
这个章节就写一下摘取命令。
摘取命令通常是针对“一行一行”来分析的, 并不是整篇讯息分析。

2.1 cut

一般用法:cut -option parameter
cut -d ‘分隔字符’ -f fields------->一般用于特定分隔字符
cut -c 字符区间--------->一般用于排列整齐的讯息

选项与参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段讯息分区成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;

例1:摘取PATH的第3个路径
先通过echo查看PATH的值,我们可以得知我们要取的第三个路径是/usr/local/bin
在这里插入图片描述
管线命令cut进行摘取
在这里插入图片描述
这里cut先-d接分割字符:,这个分隔字符是根据实际情况来决定的,我这里PATH的分隔符是:。再用-f来决定取第几段。

例2:取PATH的第四个字符,取PATH的4-7个字符
在这里插入图片描述


2.2 grep

cut 是将一行讯息当中,取出某部分我们想要的,而 grep 则是分析一行讯息, 若当中有我们所需要的信息,就将该行拿出来。

一般用法:grep [-acinv] [--color=auto] '搜寻字串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 ‘搜寻字串’ 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字串’ 内容的那一行
–color=auto :可以将找到的关键字部分加上颜色的显示

grep是一个非常强大的指令,结合上正则表达式有奇效。正则表达式后面再写博客记录。
对grep的用法,举几个例子应该就能懂了。

例1:将 last 当中,有出现 edwinwzy 的那一行就取出来;
指令:last | grep edwinwzy

在这里插入图片描述

例2:与例1相反,只要没有 edwinwzy的就取出
指令: last | grep -v edwinwzy
在这里插入图片描述

例3:在 last 的输出讯息中,只要有 edwinwzy就取出,并且仅取第一栏满足条件的
last | grep edwinwzy |cut -d ' ' -f 1
在这里插入图片描述


3. 排序命令sort,wc,uniq

3.1 sort

以查看/etc/passwd为例
指令:cat /etc/passwd

对应的输出是乱序的,如果我们想让其顺序输出,那就得通过sort指令
在这里插入图片描述

sort一般用法:sort [-fbMnrtuk] [file or stdin]

选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空白字符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用“纯数字”进行排序(默认是以文字体态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符号,默认是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思

针对上面的乱序输出的passwd进行排序
指令:cat /etc/passwd | sort
在这里插入图片描述单独只用sort只是对第一栏进行排序,如果我想让其以第三栏进行排序,那么就需用到sort的一些备选参数。
指令:cat /etc/passwd | sort -t ':' -k 3
但是这个排序似乎并不对,这是因为它是以文字体态排序,而非我们看到的数字,如果要以数字排序,那后面还要加上-n
在这里插入图片描述

指令:cat /etc/passwd | sort -t ':' -k 3- n

在这里插入图片描述


3.2 uniq

uniq是unique的缩写,所以这个指令的含义就是重复情况只显示一个的意思。
使用last指令可以列出账号,但是会有很多重复的名称,用unique就会简洁很多。
一般用法:uniq [-ic]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数

指令:last | cut -d ' ' -f1 | sort | uniq
在这里插入图片描述
对于上面情况,如果我想让其显示每个人的登录次数,只需要在uniq后加上选项-c
指令:last | cut -d ' ' -f1 | sort | uniq -c
在这里插入图片描述


3.3 wc

wc即wordcount的缩写,用来统计一个文件里面有多少字符或者说输出的内容里面有多少字符。
一般用法: wc [-lwm]
选项与参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;

wc不带参数默认列出的三个字符是“行、字数、字符数”,分别对应选项-l,-w,-m

在这里插入图片描述

总结

这个管线相关的命令还是非常重要的,这篇博客写指令相对于下一节来说,实际运用频率上大很多,还是得好好练习一下。

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

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

相关文章

基于Vue+Node.js的宠物领养网站的设计与开发-计算机毕设 附源码 83352

基于VueNode.js的宠物领养网站的设计与开发 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由…

彻底卸载mysql的详细步骤

目录 一、前言 二、操作步骤 (一) 停止mysql的服务 (二)控制面板卸载 (三)清除残留的文件 (四)删除注册表内容 (五)删除MySQL环境变量 一、前言 卸载…

spider-flow新手暴力入门

1.入口 链接跳转: spider-flow 或者本地有git软件直接输入gittt中的链接地址,回车键梭哈即可 2.环境部署,必备jdk8mysql idea打开项目,重点修改如下 mysql用小皮软件(phpstudy)自带的mysql5,navicat软件导入sql文…

SEO一般多久时间才会有效果?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言什么是SEOSEO的时间…

Sui x KuCoin Labs夏季黑客松第二批入围项目公布

Sui x KuCoin Labs夏季黑客松仍在如火如荼地进行中。自第一批入围项目名单公布后一周,第二批入围项目现已经过审核,入围最终Demo Day。 第二批入围名单 Vimverse Vimverse是一个基于Sui构建的创新生态金融平台,旨在释放去中心化储备货币协…

计算物理专题:主值积分

计算物理专题:主值积分 吴式枢理论 主值积分 设在以及上可积,其中为任意小的正数,当两者独立地趋于零,极限存在。如果,这个极限存在,则称它为瑕积分的主值,记作无界函数的改造则该瑕积分的主值…

使用鲁棒优化的定价策略进行微电网不平衡管理研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

童安格杀猪和金钥匙-UMLChina建模知识竞赛第4赛季第7轮

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 本轮每题分数较少,需最先答对所有4题,才能获得本轮优胜。 所有题目的回答必须放…

Python 进阶(一):Python连接MySQL数据库和CRUD操作

MySQL数据库的连接和CRUD操作 前言Python连接MySQL的五种方式1. 安装mysql-connector-python2. 连接数据库3. 查询数据4. 插入数据5. 更新数据6. 删除数据 前言 本文基于MySQL8.x版本的学习,python版本基于当前最新的3.x,windows操作系统下mysql的安装流…

对骨架进行去毛刺处理

文章目录 0. 效果1. 基本内容2. 参考 0. 效果 红色:端点 绿色:节点 蓝色线条:毛刺(根据长度定义) 1. 基本内容 本文中的端点和节点的获取是依据论文《一种有效的骨架毛刺去除算法》中的内容提取的。 端点&#…

Chromium多进程架构,你知道多少?

一、前言 国内外主流的浏览器,大多采用的是谷歌的Chromium 浏览器内核,Chromium是一个多进程多线程架构的Web引擎,很多应用和底层开发者希望了解Chromium中的进程和线程的种类和用途,以便能利用相关信息提升应用的性能。为此&…

C++【一棵红黑树封装 set 和 map】

✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2019 版本 16.11.17 文章目录 🌇前言🏙️正文1、红黑树的完善1.1、修改默认成员函数1.1.1、默认构造1.1.2、析构 ---> …

nodejs 跳蚤市场网站-计算机毕设 附源码83381

nodejs 跳蚤市场网站 目 录 摘要 1 绪论 1.1选题背景与意义 1.2国内外发展情况 1.3node.js主要功能 1.4node.js功能模块 1.5论文结构与章节安排 2跳蚤市场网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 …

django公交线路查询系统-计算机毕设 附源码85021

django公交线路查询系统 摘 要 本论文主要论述了如何使用django框架开发一个公交线路查询系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的&…

售后商品破损回复话术

想必客服们最关注且最头疼的问题便是售后问题了吧,特别是一些商品破损类的问题,是客服们最不想面对的问题之一了,为此小编整理了一份商品破损回复话术提供给大家,希望能对大家有所帮助哦~ 一、询问与核实 1.对不起,由…

Linux系统编程:进程的状态和进程优先级

目录 一. Linux操作系统进程的状态 二. 进程状态的标识 2.1 运行状态R 2.2 睡眠状态S 2.3 前台进程和后台进程 2.4 磁盘睡眠状态D 2.5 暂停状态和调试状态T 2.6 僵尸状态Z 2.7 终止状态X 2.8 孤儿进程 三. 进程优先级 3.1 什么是优先级 3.2 进程优先级的修改和进…

一文带你了解Java的I O机制

Java I/O 一:故事背景二:什么是Java的I\O机制2.1 流2.1.2 字节流和字符流的区别2.1.3 输入流和输出流的区别 2.2 文件 I/O2.3 缓冲 I/O2.4 标准 输入/输出2.5 对象序列化与反序列化2.6 N I/O 三:画图表示Java I/O机制3.1 输入输入系统流程示意…

vue中响应式的数组方法

vue响应式的数组方法 1、push 在数组中追加元素 <div id"app"><ul><li v-for"item in arr">{{item}}</li></ul><button click "change">按钮</button> </div> <script src"js/vue.js&…

普通单目相机标定——准备工作

前言 这里我们还是以普通相机为例(非鱼眼相机)来进行后续的相关标定操作,再回顾下相机的成像模型如下所示。 已知相机内参(fx,fy,u0,v0),畸变系数[k1,k2,k3,p1,p2],相机外参[R|T]。世界坐标系中点Pw(Xw,Yw,Zw),投影至像素坐标系点p(u,v)的计算过程如下。 1)由世…

Linux基础_1

目录 一、用户登录 1、root用户 2、普通&#xff08;非特权&#xff09;用户 二、终端terminal 1、终端类型 2、查看当前的终端设备 三、交互式接口 1、概念&#xff1a;启动终端后&#xff0c;在终端设备附加一个交互式应用程序 2、类型 3、什么是Shell 4、各种She…