Linux常用的管线命令(pipe)

只介绍命令和对应的功能,详细用法可针对性的自行搜索
管线命令基本上都是对文本进行截取的功能,据我观察,他们基本上会以行为单位。
以下命令都可以用在管道上,但是有些也可以单独使用。
以下演示的文件是用last | head -n 12 > lastfile命令得到的。
1、cut:对文本进行截取
参数:
-d:对文本按照指定的符号进行分片,然后显示指定的部分分片
-c:以字符为单位去除固定字符区间
举例:

cat lastfile | cut -d ':' -f 3
cat lastfile | cut -c 2-

2、grep:对文本进行过滤
参数:
无参时:显示所有带有指定字符串的行,并对指定字符串高亮
-c:只计算指定字符串的次数
-i:忽略大小写
举例:

cat lastfile | grep 'down'

3、sort:以指定规则对文本进行排序,以行为单位
参数:
无参时:按照每行前面的字母进行排序
-f:忽略大小写
-t:可以指定分隔符按照指定的分片进行排序,默认为tab
举例:

cat lastfile | sort -t '-' -k 2

4、uniq:去重
参数:
-i:忽略大小写
-c:计数
举例:

cat lastfile | cut -d ' ' -f 1 | sort | uniq -c

5、wc:计算行数,字符数
参数:
无参时:全计算
-l:仅计算行数
-w:仅计算英文字数,以四个字符为一个字
-m:计算总字符数,会把换行符当作一个字符计算
举例:

cat lastfile | wc

6、tee:转存
参数:
-a:以累加形式写入文件
举例:

cat lastfile | tee -a lfile | cut -d ':' -f 3

7、tr:删除或者替换指定字符,不能改变字符串
参数:
-d:删除指定字符串
-s:指定一个字符删除该字符相邻的相同字符,或者指定两个字符用后边的字符取代前边的字符或者重复字符串
举例:

cat lastfile | tr 'r' 'd'
cat lastfile | tr -d ':'
cat lastfile | tr -s 'o' 'i'
cat lastfile | tr -s 'o'

8、col:将tab按键边冲空白键,基本上用来转码之类的
9、join:两个文件当中,有 “相同数据” 的那一行,才将他加在一起,要求文件已排序
参数:
无参时:以tab键位分隔符
-t:可以指定字符进行分隔
-i:忽略大小写
-1:指定文件1中用于连接的字段号
-2:指定文件2中用于连接的字段号
举例:

join -t ':' -1 4 /etc/passwd -2 3 /etc/group | head -n 3

在这里插入图片描述
10、paste:直接将两行粘在一起
参数:
-d:指定分隔符,默认是制表符
- :表示来自标准输入
举例:

paste -d '@' lastfile lfile
paste -d '@' lastfile -

11、expand:将制表符转为空格
unexpand:将空格转为制表符
12、split:把一个大文件分割成多个小文件
参数:
-b:指定分区的文件大小,后可跟单位:b,k,m等
-l:以行数进行分区
prefix:可指定小文件的文件名前缀
举例:

split -b 10k lastfile prefix
split -l 2 lastfile prefix

13、xargs:可以让无法使用管道符的命令使用管道符
参数:
-0 :如果输入的 stdin 含有特殊字符,例如 `, , 空白键等等字符时,这个 -0 参数可以将他还原成一般字符。这个参数可以用于特殊状态喔!
-e :这个是 EOF (end of file) 的意思。后面可以接一个字串,当 xargs 分析到这个字串时,就会停止继续工作!
-p :在执行每个指令的 argument 时,都会询问使用者的意思;
-n :后面接次数,每次 command 指令执行时,要使用几个参数的意思。
当 xargs 后面没有接任何的指令时,默认是以 echo 来进行输出!
举例:

find /usr/sbin -perm /7000 | ls -l  #这样的话ls 也会执行,但是跟前面的无法关联上,管道符前后的两个命令各自执行
find /usr/sbin -perm /7000 | xargs ls -l  #这样的话就可以用ls -l查看前面查询结果的具体信息

14、-:减号可以当作管道前后的一个替代符,有时候管道前输入的东西需要在命令中间,管道后无法直接接受并处理
举例:

tar -cvf - /home | tar -xvf - -C /tmp/homeback

15、sed:搜寻、删除和修改文件内容
这是一个很强大的命令
sed [-nefr] [动作]
参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令行界面上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以执行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正则表达式的语法。(默认是基础正则表达式语法)
-i :直接修改读取的文件内容,而不是由屏幕输出。
动作说明: [n1[,n2]]function
n1, n2 :不见得会存在,一般代表“选择进行动作的行数”,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则“ 10,20[动作行为] ”function 有下面这些咚咚:
a:新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c:取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d:删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i:插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p:打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s:取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/要被取代的字串/新的字串/g
举例:
nl lastfile | sed '2,5d':删除第2~5行,d就是删除的意思
nl lastfile | sed '2,5c characters of replace':用characters of replace取代2~5行的所有内容

sed -i '2,5c characters of replace' lastfile:直接修改源文件

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

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

相关文章

你知道Mysql的架构吗?

msyql分为server曾和存储引擎层 server层包括了连接器(管理连接,权限验证)、查询缓存(命中直接返回结果)、分析器(词法分析,语法分析)、优化器(执行计划生成,索引选择)、…

java.lang.IllegalArgumentException: When allowCredentials is true

1.遇到的错误 java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a…

vue echarts地图

下载地图文件: DataV.GeoAtlas地理小工具系列 范围选择器右侧行政区划范围中输入需要选择的省份或地市,选择自己想要的数据格式,这里选择了geojson格式,点右侧的蓝色按钮复制到浏览器地址栏中,打开的geojson文件内容…

gRPC-gateway使用介绍

gRPC-gateway 参考资料:gRPC-Gateway使用指南 服务中,使用了gRPC gateway(代理)来将外部的http请求映射为内部rpc调用。 proto文件示例: // 导入google/api/annotations.proto import "google/api/annotations…

Oracle 19c rac集群管理 -------- 集群启停操作过程

Oracle rac集群启停操作过程 首先查看数据库的集群的db_unique_name SQL> show parameter nameNAME TYPE VALUE ------------------------------------ ----------- --------------------------- cdb_cluster_name …

Android Dialog 显示不全的问题

前言:开发的时候发现一些运行到手机里的dialog显示不全,只显示一半左右 问了下chatgpt发现没有任何头绪,于是开始自己慢慢分析 显示去掉了原有的dialog的style发现问题解决了,但在原有基础上如何解决呢? 先看看xml&a…

MYSQL之索引语法与使用

索引分类 分类 含义 特点 关键字 主键索引 针对表中主键创建的索引 默认自动创建,只能有一个 PRIMARY 唯一索引 …

【UE】在控件蓝图中通过时间轴控制材质参数变化

效果 步骤 1. 新建一个控件蓝图和一个材质 2. 打开材质,设置材质域为用户界面,混合模式设置为“半透明” 在材质图表中添加两个参数来控制材质的颜色和不透明度 3. 对材质创建材质实例 4. 打开控件蓝图,在画布面板中添加一个图像控件 将刚…

DC-8靶机做题记录

靶机下载地址: 链接:https://pan.baidu.com/s/1jPMYoyFZXqr7sVMElHqGcw?pwdypq9 提取码:ypq9 参考: 【DC系列靶机DC8通关讲解】 https://www.bilibili.com/video/BV1R84y1H7rk/?share_sourcecopy_web&vd_source12088c392…

指针数组与数组指针

数组指针与指针数组 动态数组 扩容:空间不够,重新申请2倍大小的连续空间,拷贝元素后,释放旧空间 动态数组区别于静态数组,其不具备begin(),end()操作 //动态一维数组int n 10;int *a new int[n];//可以输入n值&…

(完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子

前言 自用生信代码, 花费一个多月写下来的。自学R以来第一次写600多行的代码。我的文章已经发表,如对您的研究有帮助希望可以引用一下。文章点我 SVM-RFE 主要是借助e1071包, 实现mSVM-REF识别并筛选关键基因,没有安装的小伙伴…

SpringBoot3(一)动力节点总结

目录 0、有用的新特性 一、Record 1.1、Record的介绍 1.2、Record的声明 1.3、Record的创建 0、有用的新特性 JDK8-19 新增了不少新特性,这里我们把实际常用的新特性,给大家介绍一下,包括以下几个方面: Java RecordSwich 开…

Gold-YOLO(NeurIPS 2023)论文与代码解析

paper:Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism official implementation:https://github.com/huawei-noah/Efficient-Computing/tree/master/Detection/Gold-YOLO 存在的问题 在过去几年里,YOLO系列已经…

东南大学博士,华为上班5年,月薪达到4万4000,年终奖近10万

东南大学博士,华为上班5年,月薪达到4万4000,年终奖近10万 近日有华为员工爆料真实薪资,该网友是东南大学2018级博士,华为工作近5年,薪资达到4万4000,年终奖近10W。 该网友华为职场履历如下&am…

Qt6入门教程 10:菜单栏、工具栏和状态栏

目录 一.菜单栏 1.Qt Designer 1.1添加菜单和菜单项 1.2添加二级菜单 1.3给菜单和菜单项添加图标 1.4给菜单项添加功能 2.纯手写 二.工具栏 1.Qt Designer 1.1添加工具栏按钮 1.2工具栏的几个重要属性 2.纯手写 三.状态栏 1.Qt Designer 2.纯手写 用Qt Creator新…

iptables命令详解

简介 iptables 是 Linux 系统中用于配置 IPv4 数据包过滤规则的工具。它是 Linux 内核中 Netfilter 框架的一部分,通过设置规则,可以实现网络包的过滤、NAT 转发、端口映射等功能。 基本概念 表(Tables): filter 表…

GPU与SSD间的P2P DMA访问机制

基于PCIe(Peripheral Component Interconnect Express)总线连接CPU、独立GPU和NVMe SSD的系统架构。 在该架构中,PCIe Swicth支持GPU与SSD之间快速的点对点直接内存访问(peer-to-peer, p2p DMA)。通常情况下&#xff0…

Qt-QFileDialog保存文件及获取带扩展名的文件名

正确用法 QFileDialog dialog(this, "Save File", QDir::currentPath(), "Text Files (.txt)"); dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDefaultSuffix("txt"); // << if (!dialog.exec())return; QString fileName …

latex添加图片以及引用的实例教程

原理 在 LaTeX 中插入图片&#xff0c;通常是使用 \includegraphics 命令&#xff0c;它是由 graphicx 包提供的。首先&#xff0c;确保在文档的前言部分&#xff08;\documentclass 之后和 \begin{document} 之前&#xff09;包含了 graphicx 包。 下面是一个基本的例子来展…

全志D1-H芯片Tengine支持

简介 ​ Tengine 是 OPEN AI LAB 推出的边缘 AI 计算框架&#xff0c;致力于解决 AIoT 产业链碎片化问题&#xff0c;加速 AI 产业化落地。Tengine 为了解决 AIoT 应用落地问题&#xff0c;重点关注嵌入式设备上的边缘 AI 计算推理&#xff0c;为海量 AIoT 应用和设备提供高性…