Linux06--Shell程序设计02 数据流重定向与管道

包含3种数据流:

•标准输入(stdin):代码为0,符号为<或<<;
•标准输出(stdout):代码为1,符号为>或>>;
•标准错误输出(stderr):代码为2,符号为2>或2>>。
>默认为覆盖文件内容,如果要追加则用>>

将数据从指定的流输入或输出,就称为数据重定向。

管道

•管道命令的界定符号为”|”
•管道命令仅会处理stdout,对stderr会忽略
•管道命令必须要能够接收来自前一个命令的数据作为stdin
 
使用管道命令
cut grep    sort、wc、uniq
 
cut命令的主要用途是将同一行的数据进行分解
cut参数:
      -d 后接分割字符,与-f一起使用;
       -f  依据-d的分割字符将一段信息分割成数段,用-f选出第几段。
echo $PATH | cut -d : -f 5

grep命令则是按条件取出某行,其基本语法为:

[root@www~]# grep [-acinv] [--color=auto] '查找字符串' filename

-a 将binary文件以text文件的方式查找数据
-c   计算找到‘查找的字符串’的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择

在last的输出信息中,只要有root就取出,并且只取第一行
[root@www~]# last | grep 'root' | cut -d ' ' -f 1

排序命令“: sort uniq wc

sort命令用于对输入内容进行排序  

[root@www~] # sort [-fbMnrtuk] [file or sdtin]

-f  忽略大小写的差异
-b  忽略最前面的空格符部分
-M 以月份的名字来排序
-r  反向排序
-t  分隔符
-k 以第几个区间来进行排序

利用last将输出的数据仅取账号列,并排序
last | cut -d  ' ' -f 1 | sort

uniq命令用于去除结果中的重复行

uniq [-ic]
-i 忽略大小写的不同
-c 进行计数

使用last将账号列出,仅取出账号列,进行排序后仅取出一位
last | cut -d ' ' -f1 | sort |uniq -c

wc命令用于统计字、字符、行,

-l 行   -w 字 -m 字符

原文地址:https://www.cnblogs.com/zqlmmd/p/5469110.html