一、pipe命令介绍
终端命令中的数据流动,使用的是符号|
. 其他特殊符号代表的含义可以参见link
我们可以用下图来清楚表达数据的流动:
注意事项:
- pipe命令必须能够接受钱一个command的输出作为stdin才能继续处理。
例如: less, more, head, tail 可以接受stdin的command; 但是ls, cp, mv 等就不是pipe命令
二、截取命令
1. cut
作用:
将同一行里面的资料进行分解。
最常使用在分析一些数据或文字资料的时候。
选项与参数:
-d :后面接分隔charactor。与 -f 一起使用;
-f :依据 -d 的分隔字元将一段讯息分割成为数段,用 -f 取出第几段的意思;
-c :以字元 (characters) 的单位取出固定字元区间;
举例:
使用:
作为分割符号,将环境变量的第2个和第3个取出来
grep
作用:
cut 是将一行讯息当中,取出某部分我们想要的,而 grep 则是分析一行讯息, 若当中有我们所需要的资讯,就将该行拿出来
选项与参数:
-a :将 binary 档案以 text 档案的方式搜寻资料
-c :(count)计算找到 ‘搜寻字串’ 的次数
-i :(ignore)忽略大小写的不同,所以大小写视为相同
-n :(number)顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字串’ 内容的那一行!
–color=auto :可以将找到的关键字部分加上颜色的显示!
-b : binary_offset 输出与行首的字符偏移数量 通常与 -o
合用来找到子字符串的起点
-o: only-matching 只展示出行中匹配的子字符串部分
举例:
last | grep 'root'
加上-v
参数来看看:
输出的是没有的xu
的那些行
最后,我们还可以配合cut一起使用:取出包含用户xu
行,并且只保留第一列,并显示行号
附
在学习正则表达式之后,配合grep,我们利用搜索,可以玩出更多的花样。