文件查找工具  
文件查找工具: grep,egrep ,fgrep
下面主要介绍:grep和sed命令
行首锚定符 ^PATTERN
行尾锚定符 $
\<PATTERN 词首锚定符 加上引号单双都行
PATTERN\> 词尾 锚定符
 .  匹配任意单个字符 不匹配回车符
* 匹配此前的字符 0 到任意次
* 匹配任意长度的任意字符
正则表达式工作在贪婪模式:尽可能长的匹配符合模式的字符串
精确匹配次数
  匹配此前的字符 0 次或 1
\{m,n\} 至少 m 次。至多 n
\{0,5}
[ ] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
-v 不匹配的 -i 忽略大小写  
- r
-B 后面跟的是数字n,显示前n行
-A 显示后n行
-C 显示前后n行
-O 显示匹配的字符串而非查找的那一行
-E 支持扩展正则表达式的

 

\ \     \1 , 引用 此前括号内 的内容
扩展正则表达式 grep -E
{}()|( 或者 )+ (匹配一次)

 

标准输入: keyboard   用 0来表示
标准输出: monitor     用1来表示
标准错误输出: monitor  用2来表示
重定向:
> 输出重定向   覆盖   不可返
>>追 加重定向相当于重新写入
可以用set来设置是否用输出重定向:
set -C  不能用 >
set +C  继续使用 >
错误输出重定向: 2> 只定向正确输出
2>> 加重定向
整合正确错误的数据流在一个文件中 : &>

在Linux系统中命令执行结后,都有一个返回码
成功执行: 0 错误: 1-255
获取返回值   echo $?
/dev/null,bit bucket, 位桶

 

< 输入重定向
<<

 

cat > /tmp/a.out << END
管道:|
把前一个命令的输出当作前一个命令的输入
COMMAND1 | COMMAND2 | COMMAND3

sed
使用基本正则表达式
    stream editor 行编辑器
非交互式编辑器
没有破坏性
命令:
d 删除行;
使用方式: sed "ADDR1 ,ADDR2/command" inputfile
,表示一个范围
也可以用字符匹配来用:
/PATTERN/command
/PATTERN1/,/PATTERN/
p 显示出模式匹配的行 显示两次 即是打印命令
-n 只显示模式匹配到的内容 set -n ...
a\ 在匹配到的一行后添加一行 \n
i\ 命令光标在匹配到行的上方
!对匹配条件取反的
查找替换
s@@@  g i 标志位
  sed 的常用选项:
-n :quiet
-e : -e '' -e ' ' 一次指定多个条件
-i : 可直接修改原文件
-f : 可以读取 sed 脚本