QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 85|回复: 0

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

[复制链接]
累计签到:38 天
连续签到:1 天
最佳答案
0 
发表于 2017-8-7 16:20:37 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

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. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /2 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-8-22 17:12 Powered by Discuz! X2.5 Theme by dreambred

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