Linux06--Shell程序设计02 数据流重定向与管道
Posted zqlmmd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 字符
以上是关于Linux06--Shell程序设计02 数据流重定向与管道的主要内容,如果未能解决你的问题,请参考以下文章
[翻译] 使用 Python 创建你自己的 Shell:Part II