鱼C论坛

 找回密码
 立即注册
查看: 2930|回复: 0

[学习笔记] 认识bash shell5--管道命令(pipe)之撷取命令cut,grep

[复制链接]
发表于 2017-8-7 16:20:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
5.管道命令(pipe)
管道命令|仅能处理经由前面一个指令传来的正确信息,也就是standard output的信息,对于standard error output并没有直接处理的能力。在每个管道后面接的第一个数据必定是指令,而且这个指令必须要能够接受standard output的数据才行,这样的指令才可以说是管道命令,如less, more, head, tail等都是可以接受standard output的管道命令,而ls, cp, mv等就不是管道命令了,因为ls, cp, mv并不会接受来自stdin的数据。

撷取命令cut,grep:撷取命令就是将一段数据经过分析后,取出我们想要的。或者是经由分析关键词,取得我们所想要的那一行。两个很常用的讯息撷取命令:
① cut:可以将一段讯息的某一段给切出来,处理的讯息是以行为单位的
cut -d ‘分隔字符’ -f fields
cut -c 字符区间
-d:后面接分隔字符,与-f一起使用
-f:依据-d的分隔字符将一段讯息分隔成为数段,用-f取出第几段
-c:以字符(characters)的单位取出固定字符区间
例如:读取变量PATH,找出第三和第五个路径:echo $PATH | cut -d ‘:’ -f 3,5
将export输出的讯息,取得第12字符以后的所有字符串:export | cut -c 12-
用last将显示的登入者的信息中,仅留下用户大名:last | cut -d ‘ ’-f 1

② grep:cut是将一行讯息当中,取出某部分我们想要的,而grep则是分析一行讯息,若其中有我们想要的信息,就将该行拿出来。
grep [-acinv] [--clor=auto] ‘搜寻字符串’ filename
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
--color=auto :可以将找到的关键词部分加上颜色的显示
例如:将last当中,有出现root的那一行就取出来;last | grep ‘root’
将last当中,没有root的取出:last |grep -v ‘root’
将last当中,只要有root就取出,并且仅取第一栏:
last | grep ‘root’ |cut -d ‘ ’-f 1
取出/etc/man.config内含MANPATH的那几行:
grep --colot=auto ‘MANPATH’/etc/man.config

评分

参与人数 1鱼币 +1 收起 理由
小甲鱼 + 1

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 03:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表