shell--管道命令(pipe)
管道命令使用的是“|”这个界定符号
管道命令“|”仅能处理经由前面一个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理的能力
每个管道后面接的第一个数据必定是“命令”,而且这个命令必须要能够接受 standrad input的数据才行,这样的命令才可以是“管道命令”。例如 less,more,head,tail等都可以接受standard input的管道命令。至于ls,cp,mv等就不是管道命令了
也就是说管道命令主要有两个比较需要注意的地方:
管道命令仅会处理standard output,对于standard error output 会予以忽略
管道命令必须要能够接受来自前一个命令的数据成为standard input继续处理才行
选取命令:cut,grep
选取命令就是将一段数据经过分析后,取出我们所想要的,或者是经由分析关键字,取得我们所想要的那一行。需要注意,一般来说,选取信息通常是针对“行”来分析的,并不是整片信息分析
cut
cut -d ’分割字符’ -f fields 用于分割字符
cut -c 字符范围 用于排列整齐的信息
参数:
-d:后面接分割字符,与-f一起使用
-f:依据-d的分割字符将一段信息切割成为数段,用-f取出第几段的意思
-c:以字符(characters)的单位取出固定字符区间、
例如
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH |cut -d ':' -f 5
/sbin
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH |cut -d ':' -f 3,5
/usr/sbin:/sbin
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# export
declare -x HOME="/root"
declare -x HOSTTYPE="x86_64"
declare -x LANG="en_US.UTF-8"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="root"
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# export|cut -c 12-
HOME="/root"
HOSTTYPE="x86_64"
LANG="en_US.UTF-8"
LESSCLOSE="/usr/bin/lesspipe %s %s"
LESSOPEN="| /usr/bin/lesspipe %s"
LOGNAME="root"
grep
cut是在一行信息当中取出某部分我们想要的,而grep则是分析一行信息,若当中有我们所需要的信息,就将该行拿出来,语法是这样的
grep [-acinv] [--color-auto] ‘查找字符串’ filename
-a:将binary文件以text文件的方式查找数据
-c:计算找到‘查找字符串’的次数
-i:忽略大小写的不同,所以大小写视为相同
-n:顺便输出行号
-v:反向选择,即显示出没有‘查找字符串’内容的那一行
--color=auto:可以将找到的关键字部分加上颜色显示
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# last| grep 'root'
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# last| grep -v 'root'
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# grep --color=auto 'stop' catfile
ok now stop
shell--管道命令(pipe)的更多相关文章
- linux shell 管道命令(pipe)使用及与shell重定向区别
管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一个命令 ...
- Shell 管道指令pipe
目录 管道命令pipe 选取命令 cut.grep cut 取出需要的信息 grep 取出需要行.过滤不需要的行 排序命令 sort.wc.uniq sort 排序 假设三位数,按十位数从小到大,个位 ...
- 关于Linux_shell中的管道命令pipe “|”的简单学习和使用
什么是 "|"? |其实是linux shell 中的一个命令:管道命令(pipe) 管道命令操作符是:"|",它仅能处理经由前面一个指令传出的正确输出信息,也 ...
- 24 shell 管道命令与过滤器
1.管道命令的用法 2.使用管道命令的好处: 3.重定向和管道的区别 4.Linux管道实例 5.管道与重定向 1)管道与输入重定向 2)管道与输出重定向 6.过滤器 7.过滤器举栗 1.管道命令的用 ...
- linux管道命令学习(一)
继续看鸟哥私房菜,看一直很想弄懂的管道命令(pipe).第一次知道管道这个词还是在学django的时候,模板里的过滤器很像这里的管道.管道就是将输出在标准输出中的信息一次次处理最终打印在标准输出中,所 ...
- Linux的管道命令
Linux的管道命令 管道命令(Pipe) 管道命令用"|"来表示,管道命令需要接收前一个命令的输出来进行操作,但不能处理前一个命令的错误. //选取界面:cut,grep cut ...
- Linux - 简明Shell编程10 - 管道(Pipe)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo '##### Num ...
- Shell - 简明Shell入门10 - 管道(Pipe)
示例脚本及注释 #!/bin/bash echo '##### Number of *.conf : ' find /etc -name *.conf | grep system | wc -l ec ...
- 常见linux命令释义(第九天)—— Bash Shell 的操作环境Shell 中的管道命令一些管道命令
最近好懒好懒.连写文章都写不好了.于是只能写读一点书,记一点读书笔记了.太懒了,没办法.慢慢恢复自己的状态吧. 管道命令仅会处理strandard output 的内容,对于strandard err ...
- 数据流重定向和管道命令, grep, tr,sort, wc, cut,split,tee,sleep(shell 02)
主要内容 1.标准输入输出和错误 2.管道命令和 grep, tr,sort, wc, cut,split,tee,sleep 标准输入输出和错误 标准输入(stdin) 是指令数据的输入,代码为0, ...
随机推荐
- Python阶段复习 - part 2 - Python序列/持久化
1. 把一个数字的list从小到大排序,然后写入文件,然后从文件中读取出来文件内容,然后反序,在追加到文件的下一行中 >>> import json >>> imp ...
- es修改数据
# 官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html#bulk-routing * ...
- dependencyManagement和dependencies的区别
参考:http://zhaoshijie.iteye.com/blog/2094478http://blog.csdn.net/cpf2016/article/details/45674377 还有一 ...
- redis 数据类型的使用场景
value为对应的数据类型. String 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String,也可以是数字. Hash 应用 ...
- 在Debian 9上安装和配置Observium网络监控
https://blog.csdn.net/csgd2000/article/details/80780697
- React Native - 1 Windows下的环境配置(Windows+Android)
参考:https://facebook.github.io/react-native/docs/getting-started.html(要FQ) 网站上建议使用Chocolatey去配环境, ...
- Unable to set localhost. This prevents creation of a GUID
原因:tomcat无法解析hostname 解决方案:解决方案:在/etc/hosts文件中添加hostname解析
- Nodejs获取Azure Active Directory AccessToken
因为现有的代码已经迁入至Azure中,并且受AD保护,所以在获取数据时,需要传入Token后才可以获取到数据,那么第一步肯定是需要先提取到token var adal = require('adal- ...
- error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
http://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket- ...
- Codeforces 1023 D.Array Restoration-RMQ(ST)区间查询最值 (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)
D. Array Restoration 这题想一下就会发现是只要两个相同的数之间没有比它小的就可以,就是保存一下数第一次出现和最后一次出现的位置,然后查询一下这个区间就可以,如果有0的话就进行填充. ...