IO重定向
2. 输出重定向
set -C/+C 只对当前shell有效
例
- <输入重定向
例
tr 不支持后面读取文件
例
<< 结束符 :在此处生成文档
例
表示从键盘中输入一些内容保存到这个文件中
4.file ls /var/log
等同于 file /var/log/*
5. tee 从标准输入(键盘)读数据,输出到屏幕和文件中
6.
7. 重定向 &>file、2>&1、1>&2 、的区别
> 默认为标准输出重定向,与 1> 相同
2>&1 意思是把 标准错误输出 重定向到 标准输出.
&>file 意思是把标准输出 和 标准错误输出 都重定向到文件file中
1>&2 正确返回值传递给2输出通道 &2表示2输出通道
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.
例:表示标准输出重定向到file.out,错误标准输出重定向到标准输出中 ,所以最后都会重定向到file.out中
ls a.txt b.txt 1>file.out 2>&1
grep及正则表达式
-
grep:部分匹配的行显示出来
-i 忽略大小写
-v 取反
-r 递归
-n 显示文件名
-q 静默模式 不输出任何信息
–color 带颜色显示
-o 只显示被匹配到的字符串
-A 数 显示相匹配及后几行
-B 数 显示相匹配及前几行
-C 数 显示相匹配及前后几行
-E 使用扩展正则表达式 =egrep
-e 多次过滤
| 多个关键子
例如
fgrep:快速匹配,不支持正则表达式 -
正则表达式REGEXP
与文件名通配意义不同
正则表达式分为:
基本正则表达式
扩展正则表达式
他们的符号和意义可能都不相同
元字符
\+ 至少一次
|:以或的方式匹配字符串。例如,g(oo|la)d 会匹配 good 或者 glad
\d:匹配数字字符,相当于 [0-9];
\D:匹配非数字字符,相当于 [^0-9];
\w:匹配单词字符(字母、数字、下划线);
\W:匹配非单词字符;
\s:匹配空白字符(空格、制表符、换行符等);
\S:匹配非空白字符;
\b:标注字符的边界
下图的<、> 可以替换成b意义相同
例
分组:把多个单词当做一个整体,主要用来引用的作用
例:
找出前后重复的字符串
出现相同的数字
练习
注意:在使用正则表达式时,需要注意不同的工具可能对正则表达式的支持略有差异。例如,在一些情况下,egrep 和 awk 等工具在使用 {n}、{n,}、{n,m} 匹配时,{} 前面不用加 \。
扩展正则表达式
- grep
-E 后面使用扩展正则表达式 = egrep - 扩展正则表达式
括号或特殊符号不用反撇号转译
(){数}:重复括号内内容几次
例
练习