Bash Shell重要基础——管线命令

管线命令介绍

一般执行bash指令的时候会有输出结果,很多情况的输出不符合我们想要的格式,这时候就可以用管线命令来控制输出格式了,"|"是管线命令的界定符,管线命令有两个需要注意的地方

  1. 仅能处理standard output

  2. 管线命令必须能接受前一个指令的输出结果作为standward input继续处理才行

简单来说,bash或者管线命令需要正确执行(出现错误会中断执行)

截取命令cut,grep

cut

cut指令以行为单位处理输出消息,"切"出一段你想要的结果

cut选项与参数:

-d 以某个字符为分割标示(只能单字符)与-f一起使用

-f -d将输出分成几段,-f输出第几段

-c 以字符为单位截取某一长度的信息

示例一:

Bash Shell重要基础——管线命令

cut指令

上图指令是显示/etc下的文件信息(ll /etc/),并且以空格作为分割符(-d ' '),输出第一栏(-f1)

示例二:

Bash Shell重要基础——管线命令

上图指令是显示/etc/下文件信息,输出每一行的前四个字符(-c 1-4)

grep

grep是对输出信息进行抓去操作,此指令不仅可以抓取bash指令输出消息,还可以抓取文件信息,十分重要

grep指令的选项与参数:

root@ubuntu-3:~# grep [-cinv] [--color=auto] '搜寻字串' filename

-c 计算"搜寻字串"的次数

-i 忽略大小写

-n 输出行号

-v 反向查询,即抓取不包含"搜寻字串"的信息

--color=auto 抓取结果高亮显示

示例一:

Bash Shell重要基础——管线命令

对ps -aux指令抓取root用户

排序指令:sort,wc,uniq

sort

root@ubuntu-3:~# sort [-fburtk] [file or stdin]

sort选项与参数:

-f :忽略大小写的差异,例如 A 与 a 视为编码相同;

-b :忽略最前面的空白字符部分;

-r :反向排序;

-u :就是 uniq ,相同的数据中,仅出现一行代表;

-t :分隔符号,默认是用 [tab] 键来分隔;

-k :以那个区间 (field) 来进行排序的意思

范例一:

Bash Shell重要基础——管线命令

对/etc/passwd 下的内容以":"分割,并且用第三栏来排序

uniq

如果我排序完成了,想要将重复的数据仅列出一个显示,可以怎么做呢?

root@ubuntu-3:~# uniq [-ic]

uniq选项与参数

-i 忽略大小写

-c 进行计数

范例一:使用 last 将帐号列出,仅取出帐号栏,进行排序对重复数据仅显示一次;

Bash Shell重要基础——管线命令

wc

如果我想要知道 /etc/passwd 这个文件里面有多少字?多少行?多少字符的话, 可以怎么做呢?其实可以利用 wc 这个指令来达成喔!

root@ubuntu-3:~# wc [-lwm]

wc选项与参数

-l :仅列出行;

-w :仅列出多少字(英文单字);

-m :多少字符;

示例一:

Bash Shell重要基础——管线命令


分享到:


相關文章: