linux之管道命令

管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard
error 信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入 standard input. 
注意:
1、管道命令只处理前一个命令正确输出,不处理错误输出
2、管道命令右边命令,必须能够接收标准输入流命令才行。 

作用接收标准输入的命令才可以用作管道右边。否则传递过程中数据会抛弃。 常用来作为接收数据管道命令有:sed,awk,cut,head,top,less,more,wc,join,sort,split 等等,都是些文本处理命令。


1.cut命令

cut命令用于截取字符串,显示到标准输出上。截取信息以行为单位。
-c, --characters=LIST :以字符为单位。
-d, --delimiter=DELIM :表示分隔符,默认情况下为TAB。

-f, --fields=LIST :以字段为单位。




2.grep

grep是一个文本搜索工具,用于查找指定的匹配,并输出到标准输出上。支持正则表达式。
-c, --count :只是输出文件中匹配的行的总数
-i, --ignore-case :忽略大小写。
-n, --line-number :输出时加上行号。

-v, --invert-match :只显示不包含匹配的行。



3.sort

sort命令用于将文件内容排序,显示到标准输出上。排序是根据某个或多个关键字进行排序。sort默认以第一列数据来排序
-b, --ignore-leading-blanks :忽略每行前面开始出的空格字符和制表符。
-f, --ignore-case :忽略大小写。
-M    以月份的名字来排序
-n    使用纯数字排序
-r    反向排序
-t    分隔符,默认为Tab

-k    以给定的区间来排序




4.uniq

将结果去重复,对于重复行仅显示一行。
-c, --count :显示输出时,在每行的行首加上该行在文件中出现的次数。
-d, --repeated :只显示重复行。
-i, --ignore-case :忽略大小写。

-u, --unique :只显示文件中不重复的行。



5.wc

对结果进行统计。
-l    仅列出行
-w    仅列出多少字

-m    多少字符



6.tee

tee会将数据存在文件中的同时,输出给管道。

-a    以累计(append)的方式将数据写到文件file中



7.tr

删除一段信息中的某一段字符串,支持正则表达式。
-d 删除字符串

-s 替换重复的字符串



8.col

-x 将tab健换成对等的空格健;

-b 在文字内有反斜杠时,仅保留反斜杠最后接的那个字符。


9.join

将两个文件中指定栏位相同的行连接起来。即按照两个文件中共同拥有的某一列,将对应的行拼接成一行。
-i :忽略大小写
-t CHAR :以指定字符作为输入输出的分隔符
-1 代表第一个文件要的比较字段
-2 代表第二个文件要的比较字段

join 默认以空白字符做分隔符。



在使用join之前所处理的文件要事先经过排序,否则有些对比的项目会被忽略。





10.paste

将两个文件对应行链接在一起。
-d指定链接的分隔符,默认是tab间隔符

- 如果文件将文件位置改为-,表示接收来自standard input的输入。




11.expand

将tab键按指定空格数显示

-t 指定空格数数量



12.split

-b 将文件按指定大小分割。

-l 以行数来进行分割




13.xargs

xargs构造一个命令行,该命令行由指定的命令,选项以及从标准输入按顺序读取的参数来组成;并确保读取的参数在长度和数量上符合xargs选项指定的约束。然后,xargs调用该命令行,并等待执行完成。
从标准输入读取的参数必须用空白字符(不在引号中)或者是换行符(未转义)来分隔。不含双引号和换行符的字符串,可以用双引号来引起来。不含单引号和换行符的字符串可以用单引号引起来。未引起来的字符可以在前面用\来转义。
-0 如果输入的数据含有特殊字符比如`,\,空格等,这个参数指定其为一般字符意义。
-e 后面接遗传字符串,当xargs读取到这个字符串时,就停止。
-p 在执行每个命令的参数时都会询问。
-n 后面接次数,即每次命令执行时要使用几个参数。

若xargs后面没有接任何命令时,默认以echo来进行输出。


linux之管道命令,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。