bash之管线命令

时间:2021-02-03 20:44:55
命令的输出需要经过好几道手续才能得到我们想要的格式,需要用到管线(pipe),(|)
管线命令(|)仅能处理stdandard output,对stdandard error output会忽略
管线命令(|)指令必须能够接受来自前一个命令的输出,并做为standard input继续处理
 
cut -d'分隔字元' -f fields 用于有特定分隔字元
cut -c字元区间
-d:后面接分隔字元,与-f一起使用
-f:依据-d的分隔字元将一段讯息分隔开,用-f取出第几段
-c:以字元的单位取出固定字元区间,适用于具有固定格式的内容
 
通过一个指令的执行来判断后面的指令要不要执行,需要&&和||的帮忙
cmd1 && cmd2 若cmd1执行完毕且正确($?=0),则执行cmd2
             若cmd1执行完毕且为错误($?!=0),则cmd2不执行
cmd1 || cmd2 若cmd1执行完毕且正确($?=0),则不执行cmd2
             若cmd1执行完毕且为错误($?!=0),则执行cmd2   
command1 && command2 || command3
一般command2和command3放置一定可以成功的命令
 
 
grep 分析一行指令,若有我们所需要的信息,就将该行列出来
grep [-acinv] [--color=auto] '搜寻字符串' filename
-a:将binary档案以text档案的方式搜寻资料
-c:计算找到'搜寻字串'的次数
-i:忽略大小写的不同
-n:输出行号
-v:显示没有'搜寻字串'内容的那一行
--color=auto:将找到的关键字部分加上颜色
 
将重复的资料仅显示一个:uniq [-ic]
-i:忽略大小写的不同
-c:进行计数
 
查询资料有多少字,多少行,多少字元:wc [-lwm]
-l:仅列出行数
-w:仅列出多少字(英文单词)
-m:多少字元
 
将输出到屏幕的保存一份到文件:tee [-a] file
-a:以累加的方式将资料加入file
 
删除一段信息中的文字或进行替换:tr [-ds] SET1
-d:删除讯息当中的SET1子串
-s:取代掉重复的字元
 
col [-xb]
-x:将tab键转换成对等的空白键
-b:过滤控制字符,常用来将man page转存成纯文字档方便查阅
 
 
某些指令需要档案名称来进行处理时,stdin和stdout可以用'-'来替代,
 
如:
tar -cvf - /home | tar -xf -