1.概述
管道命令就是处理经由前面一个命令传来的正确信息,也就是standard output的信息然后进行处理的命令,对于错误的信息并没有处理的能力。
上图就是管道命令大概的处理流程,这里需要注意下面两个问题:
1.管道命令只能处理标准正确输出,即standard output,而对错误的输出会给予忽略;
2.位于管道命令必须要能够处理前一个指令产生的标准输出才行;
二.选取命令:cut,grep
grep和cut都是选取命令,不同之处就在于cut会将一行中我们需要查找的部分切割出来显示,而grep则会将这一行都显示出来而不会只显示这一行的一部分;下面就来看grep和cut的用法。
cut
用法:
cut -d '分隔字符' -f fields
cut -c 字符范围
参数:
-d:后面接分隔字符
-f:依据-d的分隔字符将一段信息切割成为数段,用-f取出第几段的意思
-c:以字符的单位取出固定字符区间
下面这个示例就是首先查询出PATH变量的值,然后以:为分隔,取出第三个部分;
[root@localhost test]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/giyoo/.local/bin:/home/giyoo/bin[root@localhost test]#
[root@localhost test]# echo $PATH |cut -d ':' -f 3
/usr/bin
grep
用法:
grep [-acinv] [--color=auto] '查找字符串' filename
参数:
-a:将binary文件以text文件的方式查找数据;
-c:计算找到‘查找字符串’的次数
-i:忽略大小写的不同,所以大小写视为相同;
-n:顺便输出行号;
-v:反向选择,即显示出没有‘查到字符串’内容的那一行;
--color=auto:可以将找到的关键字部分加上颜色显示;
三.排序命令:sort,wc,uniq
sort
用法:
sort [-fbMnrtuk] [file or stdin]
参数:
-f:忽略大小写的差异,例如A与a视为相同;
-b:忽略前面的空格部分;
-M:以月份的名字来排序;
-n:使用“纯数字”进行排序;
-r:反向排序;
-u:就是uniq,相同的数据中,仅出现一行代表;
-t:分隔符,默认是用[tab]键来分隔;
-k:以那个区间来进行排序的意思;
uniq
用法:uniq就是将重复行删除只显示一个的命令
uniq [-ic]
参数:
-i:忽略大小写字符的不同;
-c:进行计数;
wc
用法:计算整体输出的信息的工具
wc -[-lwm]
参数:
-l:仅列出行;
-w:仅列出多少字;
-m:多少字符;
四.双重定向:tee
双重定向说白了就是,将输出的数据转存一份到文件内,而还会在屏幕上显示正常的数据;
用法:
tee [-a] file
参数:
-a:以累加的方式将数据加入file中;
五.字符转换命令:tr,col,join,paste,expand
tr
用法:tr可以用来删除文字或者进行文字的替换
tr [-ds] SET1
参数:
-d:删除信息当中的SET1这个字符串;
-s:替换掉重复的字符;
col
用法:将tap键替换成空格键,另外col还经常被利用与将man page转存为纯文本文件以方便查阅的功能
col [-xb]
参数:
-x:将tab键转换成对等的空格键
-b:在文字内有反斜杠/时,仅保留反斜杠最后接的那个字符;
join
用法:将两个文件当中有相同数据的那一行加在一起
join [-ti12] file1 file2
参数:
-t:join默认以空格符分隔数据,并且对比“第一个字段”的数据,如果两个文件相同,则将两条数据连成一行,且第一个字段放在第一个;
-i:忽略大小写的差异;
-1:这个是数字的1,代表第一个文件要用哪个字段来分析的意思;
-2:代表第二个文件要用哪个字段来分析的意思;
paste
用法:直接将两个文件的两行贴在一起,且中间以tap键隔开
paste [-d] file1 file2
参数:
-d:后面可以接分隔字符,默认是以tap来分隔的;
- :如果file部分写成-,表示来自standard的数据的意思;
expand
用法:就是将tap键转成空格键
expand [-t] file
参数:
-t:后面可以接数字,一般来说,一个tap按键可以用8个空格键替换,我们也可以自行定义一个tap按键代表多少个字符;
六.切割命令:split
用法:将大文件切割成指定大小的小文件
split [-bl] file PREFIX
参数:
-b:后面可接欲切割成文件的大小,可加单位,例如b,k,m等;
-l:以行数来进行切割;
PRIFIX:代表前导符,可作为分割文件的前导文字;