你的位置:首页 > 操作系统

[操作系统]linux 管道命令 小记


管道命令(pipe) 

使用“|”界定符号

管道命令必须能够接收来自前一个命令的数据成为standard input才能继续处理

1.选取命令:cut, grep。分析数据,取出我们想要的。  

-cut 将一段信息中的某一段“切”出来,以“行”为单位,取出某个部分。

      cut -d '分隔符号' -f fields     用于分割符类(-f fields取出第几段的意思  -f 5第五段  -f 3,5 第三段和第五段)

      cut -c 字符范围                  用于排列整齐,具有格式的信息(-c 范围 ,以字符为单位取出固定区间 cut -c 12-20 )

 

-gerp 分析一行信息,包含所需要的,就将整行拿出来

        grep [-acinv] [--color=auto] '查找字符串’ filename

                 -a:将二进制文件以text文件的方式查找数据

                 -c:计算找到查找字符串的次数

                 -i:忽略大小写

                -n:输出行号

                --color=auto:关键字上色

        例:last | grep 'root'

              last | grep 'root' | cut -d ' ' f1

2.排序命令  sort ,wc ,uniq

-sort 依据不同数据类型排序

       sort [-fbMnrtuk] [file or stdin]   ( -n使用纯数字排序  -r反向排序   -u相同数据仅出现一行   -t分隔符     -k区间)

      例: cat  /etc/passwd   | sort -t ':' -k 3 -n

-uniq 重复数据处理

       uniq  [ic]

               -i 忽略大小写

              -c 进行计数

       例: last | cut -d ‘ ’ -f1 | sort |uniq

-wc  统计文件的行数, 字符数,字数

     wc [-lwm]

      -l:行

      -w:字

     -m:字符

     例: cat /etc/man.config | wc

3.双重定向 tee 让standard out转存一份到文件内并将同样的数据继续传送到屏幕处理

   例:ls -l  /home | tee ~/homefile |more

4.字符转换命令 tr ,col ,join, paste, expand

-tr 删除信息中的文字或者进行替换

   tr [-ds]    set1   (-d删除  -s替换)

   例: last | tr '[a-z]' '[A-Z]'

          cat /etc/passwd | tr -d ':'

-col [-xb] 将tab替换为空格

-join 处理两个文件之间的数据,使用join之前,先进行sort排序

    join [-ti12] file1 file2

     -t 分割数据符,默认为空格

     例:join -t ':' -1 4 /etc/paswd -2 3 /etc/group

-split切割命令

   split [-bl] file PREFIX

    -b 欲切割文件大小

    -l 以行数进行切割

    例: ls -al / | split -l 10 - lsroot

          wc -l lsroot*