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来进行输出。

\

相关内容