Linux 管道命令

接触Linux已经两年了,平时都是零零散散的学,零零散散的用,也该系统的总结学习一下了。先看了一下平时比较常用的BASH SHELL部分的知识。

 

管道命令采用“|”作为分隔符,每个管道的前后都是命令,后一个命令的输入是前一个命令的输出。需要注意的是,管道命令只能处理通过前一个命令传来的正确信息,也就是标准输出的信息,对于标准错误,没有直接处理的能力。

介绍几个比较常用的命令:

1、grep:分析一行信息,如果其中有我们需要的信息,就将改行取出。

     语法: grep [-acinv]  '搜索字符串' filename

     参数含义:-a 将二进制文件以文本文件的方式搜索数据

                   -c 计算找到的搜索字符串的数目

                    -i 不区分大小写

                    -n顺便输出行号

                    -v反向选择,输出没有包含搜索字符串的行

     举例:last | grep 'root' -v     把last中不包含root的取出

2、sort:可以根据不同的数据类型进行排序

     语法: sort [-fbMnrtuk] [file or stdin]

     参数含义: -f 忽略大小写

                     -b 忽略最前面的空格符部分

                     -M 以月份的名字来排序

                      -n使用纯数字进行排序

                      -r反向排序

                      -t分隔符,默认是table键

                      -u相同的数据,只出现一次

                      -k按filed进行排序

   举例:cat /etc/passwd | sort -t ':' -k 3 实现的功能是将/etc/passwd的内容以:分割的第三栏的内容进行排序

3、wc:计算输出信息的整体数据

     语法: wc [-lwm]

     参数含义:-l显示多少行

                    -w显示多少字

                     -m显示多少字符

      举例: cat /etc/passwd | wc计算一共有多少个用户

4、tee:双向重导向,同时将数据流分送到文件和屏幕

    语法: tee [-a] file

    参数含义: -a 以累加的方式将数据加入file文档中

5、tr:用来删除一段消息中的文字,或者是进行文字消息的替换

     语法:tr [-ds] SET1

     参数含义: -d 删除消息中的SET1字段

                    -s替换重复的字符

     举例: last | tr '[a-z]' '[A-Z]' 将last输出的消息中,所有小写变成大写

             cat \home\test\dostxt | tr -d '\r' >dostxt_Nm将DOS文件的换行符^M符号删除

6、join:处理两个文件之间的数据,主要是处理两个文件中有相同数据的行

    语法:join [-ti12]  file1 file2

    参数含义: -t join默认以空格符副歌数据,而且比较第一个字段的数据,如果两个文件相同,则将两个数据联成一行,且第一个字段放第一个

                   -i忽略大小写差异

                   -1表示第一个文件要用那个字段来分析

                   -2表示第二个文件要用那个字段来分析

    举例:jion -t ':' /etc/passwd /etc/shadow 将两个文件的相关数据整合成一栏

 

7、xargs:产生某个命令的参数,比较好用,需要深入学习

posted @ 2013-08-28 15:39  trista_jz  阅读(1406)  评论(0编辑  收藏  举报