Day30 管线命令I

大家都知道在bash执行命令的时候有输出的资料会出现,那如果我们碰到的资料是需要经过几道手续才能得到的结果,那要如何处理呢?这个时候就牵涉到管线命令的问题,那这个东西主要是使用"|"这个界定符号。对了,管线命令跟连续下达命令不太一样。这个我之後会提到。

这个管线命令特别的点在於,管线命令只能处理前面一个指令传来的正确资讯。也就是标准输出的资讯,那对於标准错误输出这个部分,管线命令还真的无法处理。

那每一个管线命令後面接的第一个资料一定是指令,不能是别的资料。而且这个指令必须要能够接受标准输入的资料。要符合以上条件的指令才是管线命令。这个是要特别记住的点,基本上可以综合为以下两点来看。
(1)管线命令只会处理标准输出,标准错误输出的资料会被忽略掉
(2)管线命令必须要能够接受来自前一个指令的资料成为标准输出继续处理才行

那就要来介绍这个部分的相关指令了,先来介绍命令撷取的部分,主要是cut跟grep这两只指令

cut
(1)将一段讯息的一部分取出
(2)处理的讯息是以行为单位
(3)主要用於将同一行的资料进行分解
(4)处理多空格相连的资料时会比较吃力

指令格式
cut -d'分隔字元' -f field <-用於有特定的分隔字元格式
cut -c 字元区间 <-用於排列整齐的讯息

相关参数以及选项
-d:後面接分隔字元,要与-f一起使用
-f:依据-d的分隔字元将一段讯息分割为数段,用-f取出第几段的意思
-c:以字元的单位取出固定字元的区间

grep
(1)分析一行讯息,只要该行有需要的资讯,就将其提出
(2)支援的语法极多,可以处理很多类型的资料

指令格式
grep (-acinv) (--color=auto) '搜寻字串' filename

相关参数以及选项
-a:将binary档案以text档案的方式搜寻资料
-c:计算找到'搜寻字串'的次数
-i:忽略大小写的不同
-n:输出行号
-v:反向输出,就是输出没有关键字的结果

以上就是本人介绍管线命令的部分,如果有缺漏的部分,也麻烦大家多指教
然後今天是本人铁人赛的最後一天,但是本人不会弃坑,只是之後的更新可能会比较慢,感谢各位在这一个月的帮助


<<:  [DAY 30] 未完的终点是下一场的起点 : 总结以及各式好用连结

>>:  JavaScript基本功修练:Day30 - AJAX常遇上的同源政策问题与解决方法

[Day27] 透过GCP实作(3/4):建立RealTime Database即时读入/存取资料

从昨天所提及的架构,让你在爬虫获取资料的情境下使Cloud Function能各司所职。 并使维护...

Day23 Plugin 从零开始到上架 - ActivityAware 介绍

ActivityAware 如果插件需要与UI 进行互动,例如请求权限或更改Android UI ,...

Day 4 - hello world!!

开始罗!准备好hello world了吗? 昨天我们讲完配置环境了,今天就开始写code吧! 开始吧...

Day 21:非 GUI 类工具之三

JUCE 提供 juce::var 类别,可用来储存多种资料型别,如 int, int64, flo...

学习Python纪录Day16 - 使用Matplotlib绘制图表

使用Matplotlib绘制图表 安装matplotlib套件的命令列指令 pip install ...