与管道相关的几个命令处理
来源:互联网 发布:显卡优化不了游戏 编辑:程序博客网 时间:2024/06/09 13:59
如果我们需要获取数据,而原始数据需要经过一系列的过滤、分析、处理后才是我们需要的,那么bash脚本里,需要使用管道"|"来处理。
管道只处理前一个命令输出到stdout的信息。管道处理是以行为单位(段)来处理前一个命令的输出,以回车换行为标致。
(一)部分截取cut
截取命令是针对一行一行来进行的。
cut 指定分隔符进行分割,然后指定截取哪些“域”(列),在处理多空格的时候有些麻烦。
-d :指定分隔字符。
-f :-d分隔后,截取哪些列,从1开始。
-c :以字符 为单位取出固定字符区间,-c 12-20表示取12个字符到20个字符之间的段
(二)整行过滤截取grep
grep命令,分析一行中,如果有我们想要的信息,就将改行整个取出来
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
(三)排序sort
默认以第1列来排序,按字符顺序排序,常见参数如下:
-f :忽略大小写
-b :忽略最前面的空格;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :按数字进行排序(默认以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :指定分隔符,默认 tab ;
-k :以那个区间 (field) 来进行排序的意思,
(四)相同元素统计uniq,通常在sort后,重复的信息行删掉,只显示一项,参数如下:
-i :忽略大小写字符的不同;
-c :进行计数
(五)统计wc,统计文件里信息有多少行、多少字符、多少字,参数如下:
-l 行
-w 字
-m 字符
(六)处理的数据流双向导出,处理数据流既想导出到文件,又想在管道里继续处理,使用 tee
tee [-a] file
ifconfig |grep mtu |cut -d ':' -f 1|tee ifname.txt |awk '{print $1}'
(七)对信息流进行删除字符或替换字符 tr
参数:
-d :删除信息流中的某个字符串
-s :取代掉重复的字符
(八) tab键和空格键的相互替换 col
-x 将对等数量的tab转成空格
-h 将对等数量的空格转成tab
(九)join命令,合并文件,如果2个文件有相同类型&值的列,通过相同列将这2个文件联合起来,以便以后处理
-t :join 默认以空格符分隔数据,并且比对第一列字段为合并相同列,如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个。
-i :忽略大小写
-1 x:第一个文件以第x列作为合并相同列
-2 y:第一个文件以第x列作为合并相同列
(十)paste 将两个文件,以行为单位,直接粘贴在一起
-d :指定分隔字符,默认 [tab] 来分隔的!
- :如果 file 部分写成 - ,表示其中一个文件来自standard output。
cat a.config |paste b.config c.config - 标识将a.config ,b.config,c.config 合在一起
(十一)expand 将 [tab] 按键转成空格键
-t :后面可以接数字,标识替换为多少个空格
cat /etc/man.config |expand -t 4 |cat -A
(十二)split 分割文档
-b 按大小来分割,单位是b k m
-l 按行数来分割
(十三)xargs 参数代换
xargs 可以读入 stdin 的数据,并且以空格符或断行字符作为分辨,将 stdin 的资料分隔成为 arguments。xargs 后面没有接任何的指令时,默认是以 echo 来进行输出
cut -d':' -f1 < /etc/passwd |head -n 3| xargs finger
(十四)减号 - 的用途
某些指令需要用到文件名称 (例如 tar) 来进行处理时,该 stdin 与 stdout 可以利用减号 "-" 来替代。
tar -cvf - /etc/passwd |tar -xvf -
- 与管道相关的几个命令处理
- 与操作目录相关的几个命令
- 与关机相关的几个命令
- shell 的几个数据处理命令 管道命令
- shell 的几个数据处理命令 管道命令
- CentOS系统中与时间相关的几个命令
- Linux和管道操作相关的命令
- 几个有用的网络相关的命令
- 几个动态链接库相关的命令
- apt-get 相关的几个有用命令
- Linux----6----输入输出和管道及相关的命令
- 【Bash百宝箱】与Linux关机、重启相关的几个命令
- 管道的相关知识
- 管道的相关知识
- 管道的相关知识
- Linux文件处理的几个命令
- Centos几个处理文件常用的命令
- linux进程相关的几个命令+其他命令
- 强制退出WinForm程序之Application.Exit和Environment.Eixt
- 智力题:比赛问题
- 安装Ecshop首页出现报错:Only variables should be passed by referen
- jquery 动态添加onclick事件
- Bigdata and Deep Learning Lecture points(1)
- 与管道相关的几个命令处理
- 微信公众平台完整开发教程
- BZOJ 1057 [ZJOI2007]棋盘制作 最大子矩阵
- AOS应用基础平台v0.3-系统关键字id
- 9个offer,12家公司,35场面试,从微软到谷歌
- LeetCode_237Delete Node in a Linked List
- 日经社説 20150731 社会保障の維持へ能力に応じた負担を
- jQuery 效果 - animate() 方法
- 在RESTFUL风格中怎样定义需要多个参数才能确定的资源路径