I/O
Input设备
Output设备
系统设定
默认输出设备:标准输出 STDOUT
默认输入设备:标准输入 STDIN
标准错误输出:STDERR 2
标准输入:键盘
标准输出和标准错误输出:显示器
I/O重定向
linux中:
>:覆盖输入
>>:追加输出
set -c:进制对已经存在的文件覆盖重定向。强制覆盖输出泽恩使用>|
set +c关闭上述功能
2>:重定向错误输出
2>>:追加错误输出
&>:重定向标准输出或错误输出至同一个文件
<:输入重定向
<<:Here Document
管道:前一个命令的输出,作为后一个命令输入的
命令1|命令2|命令3...
grep及其egrep
grep的用法
grep,egrep,fgrep 用法:grep ‘root‘ /etc/...
grep:根据模式搜索文本,并将符合模式的文本行显示出来
Pattern(模式):文本字符和正则表达式的元字符组合而成的匹配条件
grep [options] PATTERN [file...]
-i:不考虑大小写
--color 显示匹配条件为高亮颜色
-v:显示没有匹配到的行(反向显示)
-o:只显示被模式匹配到的字符串
-E:扩展表达式
-A#:(#为数字)显示其后#行
-B#:显示其前#行
-C#:显示其前后#行
正则表达式:REGular EXpression REGEXP
元字符:
.:单个字符
匹配次数(贪婪模式)
*:匹配其前面字符任意次
a*B -->任意次a
.*:任意长度的任意字符
\?:匹配其前面字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{1,\}:至少1次,至多不限
\{0,3\} :至少不限,至多3次
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行
\<或\b:其后面的任意字符必须以单词首部出现
\<或\b:其前面的任意字符必须以单词尾部出现
注意\b位置
分组:
\(ab\)*
后向引用
\1:引用第一个左括号与之匹配的右括号所包括的内容
\2:引用第二个。。。。。。。
[]:匹配指定范围内的任意单个字符
[^]:匹配范围外的任意单个字符
字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alnum:]
数字 ,小写字母,大写字母,标点 ,空白 ,所有字符字母
fgrep:不支持正则表达式(搜索速度快)
扩展正则表达式:
grep -E =egrep
字符匹配:.,[],[^]
次数:*,?,+(匹配其前的字符至少1次)=\{1,\}
位置锚定:^,$,\<,\>
分组:() \1,\2,\3,......
或者: "a|b"
习题:找到a.txt中1--255的整数(默认为整数)
egrep ‘\<(1-9)|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]‘ a.txt
找出a.txt中的IP地址:
IPV4:5类:A,B,C,D,E
A:1-127 B:128-191 C:192-223