sem pat 一行 处理 ces 删除字符 .... 字符集 /etc/
阅读目录
1. 标准输入输出
2. 输入输出重定向
3.tr 命令
4. 管道和 tee
5. 练习
1,标准输入输出
(1)linux 给程序提供三种 I/O 设备
标准输入 :(STDIN) — 0 默认接受来自键盘的输入
标准输出 :(STDOUT) — 1 默认输出到终端窗口
标准错误 :(STDEER) — 2 默认输出到终端窗口
(2)输入设备有:键盘,鼠标,扫描仪,摄像头等
输出设备有:打印机,显示器,投影仪等
2,输入输出重定向
〉正确输出
2〉错误输出
&〉全部输出(覆盖重定向)
> 文件内容会被覆盖
set -C : 禁止将内容覆盖已有文件,但可追加
>| file : 强制覆盖
set +C 允许覆盖
>> 原有内容基础上,追加内容
文件不存在时,> 和 >> 都能创建新文件,文件已存在时 > 表示覆盖,>> 表示追加
2>&1 把错误的结果转成正确的结果
1>&2 把正确的结果转成错误的结果
():合并多个程序的 STDOUT
** 3,tr 命令
cal 2007;
cal 2008(cal 2007; cal 2008) > all.txt
tr 转换和删除字符
tr [OPTION] ....SET1[SET2]
选项:
-c -C --complement: 取字符集的补集
-d --delete:删除所有属于第一个字符集的字符
-s --squeeze-repeats: 把连续重复的字符以单独的一个字符表示
-t --truncate-set1: 将第一个字符集对应字符转换为第二字符集对应的字符
从文件中导入 STDIN
(1) 使用 < 来重定向标准输入
(2)某些命令能够接受从文件中导入的 STDIN
Tr 'a-z' 'A-Z'< /etc/issue 该命令会把 / etc/issue 中的小写字符都转换成大写字符
(3) tr -d abc < /etc/fstab 删除 fstab 文件中的所有 abc 中任意字符
按 ctrl+d 离开,可以使用文件来代替键盘的输入
(4) cat > file
Mage
wangxiaochun
使用 "<< 终止词" 把多行重导向给 STDIN
4,管道和 tee
使用符号 "|" 表示,用来连接命令
命令 1 | 命令 2 | 命令 3 ...
组合多种工具的功能:
ls | tr `a-z` `A-Z`
less : 一页一页的查看输入 ls -l /etc | less
mail : 通电子邮件发送输入 echo "test email" | mail -s "test" user@example.com
tee:从标准输入读取,写入到标准输出,并保存到文件中
5,练习
1,计算 1+2+3+..+99+100 的总和
echo 1+2|bc echo {1..100} echo {1...100} |tr " "+|bc
2, 一个 linux 用户给 root 发邮件,要求邮件标题为 "help",邮件正文如下:Hello, I am 用户名, The system version is here,please help me to check it ,thanks 操作系统版本信息
echo -e Hello,I am `whoami`,The system version is here,Please help me to check it,Thanks."\n"`cat /etc/redhat-release` | mail -s help root
3,将当前系统登录用户的信息转换为大写后保存至 / tmp/who.out 文件中
who | tr [a-z] [A-Z] > /tmp/who.out
4,将 / etc/issue 文件中的内容转换为大写后保存至 / tmp/issue.out 文件中
cat /etc/issue |tr a-z A-Z > /tmp/issue.out
6,处理字符串 "xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4",只保留其中的数字和空格
echo "xt.,l 1 jr#hat-releasemn 2 c*/fe 3 uz 4" | tr -cd [:digit:][:blank:]
7,将 PATH 变量每个目录显示在独立的一行
echo $PATH |tr : "\n"
Linux 下的 I/O 与管道
来源: http://www.bubuko.com/infodetail-2461732.html