重定向和管道符
1.重定向 --> 标准输入、标准输出、错误输入
在程序中,数据如何输入?又如何输出?
数据输入:键盘 -- 标准输入,但是并不是唯一输入方式;
--stdin
echo "123456"|passwd --stdin "username"
例如:功能添加用户,useradd.sh user.txt文本文档1000个用户
执行./useradd.sh
./useradd < user.txt
while line ;do
循环体 $line
done < /etc/passwd
数据输出:显示器 -- 标准输出,但是并不是唯一输出方式
ls /etc/ > a.txt
fd文件标识符0-9 -- 相当于给文件分类
0 -- 标准输出
1 -- 标准输入
2 -- 标准输入输出(标准错误)
常见重定向符号
1.标准输出
> 覆盖重定向-->非常危险
set -C --> 关闭覆盖重定向功能
set +C --> 开启覆盖重定向功能
>| 强制重定向
>> 追加重定向 --> 不覆盖
2.标准输入
< tr -- 替换文件内容
tr abc ABC < /etc/passwd --> 把passwd文件里的abc替换为ABC
<< 将多行数据同时输入
cat >>a.txt<< EOF
3.错误输出
2> 追加
扩展:不需要输出内容,只需要输出状态;
ls /etc/ > /dev/null
if [$? -eq 0];then
循环体
fi
2>> 追加
&> &>> == 2&>1
ls /etc/ &> /dev/null
cat a.txt | more
2.管道-tee
command1|command2|command3|……
前一个命令执行结果交给后一个命令来执行
【Linux思想:结合小功能实现大功能】
free -m|grep "^Men"|cut -d'' -f19
free -m|grep "^Men"|awk '{print $3}'
find [范围] -name ab* -type f -perm 600 -mtime +7|xargs rm -rf
-f 列数/个数
tee --> 一路输入,两路输出
tee /tmp/tee.out
如果没有文件,会创建,默认如果文件存在有内容,会覆盖
练习:
将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中;
head -5 /etc/passwd|tr [a-z] [A-Z] > /tmp/passwd.out
将登录至将前系统上用户信息汇总后的3位信息转换为大写后保存至/tmp/who.out文件中
who |tail -3|cut -d'' -f1|tr [[:lower:]] [[:upper:]]|tee /tmp/who.out
tail 查看文件尾部多少行(默认10行)
3.文本处理工具--wc,cut,sort,uniq
wc---word count(统计文本文件中的字符个数)
用法:wc -c filename 看文件大小
-l 看行数
-w 看字符个数
cut
用来做文件分割
-d 指定分隔符(delimiter)
-f 指定输出的列数
f2 第二列
f1-3 1-3列
f1,3 1,3列
--output-delemiter=' ' 将输出的分隔符替换为自己想用的分隔符
[cut的局限性1.-d指定分隔符,不能同时指定多个 2.不能做高级的格式化输出。所以需要熟练掌握awk]
sort
排序(根据ASCII码进行排序,大小写不是),默认查看第一个字符(包括数字字母以及空格和特殊符号)
-t 指定分隔符
-r 逆序
-f 忽略字符的大小写
-n 指定以数值大小进行排序
-u uniq 排序去除重复,重复的不显示
-k 指定按照那一列进行排序
uniq
去重,连续且相同的命令才被视为重复
建议先排序后去重
-c 统计某些字符重复了多少次
sort filename | uniq -c
-d
转载于:https://www.cnblogs.com/xsnblog/p/11347900.html
- Linux06--Shell程序设计02 数据流重定向与管道
- LinuxC/C++编程(6)—重定向、管道重定向
- 控制台程序的管道重定向
- linux中的管道符与重定向
- unix/linux编程实践教程:I/O重定向和管道
- 输入重定向,输出重定向,管道相关内容及实现方法
- 重定向和管道及tr tee命令
- RHCE 学习笔记(4)- 重定向,管道和VIM编辑器
- bash脚本:输入输出重定向、管道命令
- linux数据流重定向,管道以及搭配grep等命令
- Shell(4)-管道、重定向、if表达式
- I/O重定向和管道:使用pipe、fork、exec详解。
- 管道和重定向
- linux进程、管道和重定向
- 输入输出重定向和管道
- linux基础知识之:IO重定向和管道
- Linux C 重定向和管道 学习
- I/O重定向和管道
- Linux - 重定向与管道
- echo,Shell管道与重定向