1.awk
(1)针对文件进行读取过滤:
  打印出每一行:awk '{print $0}'   test.txt              ------------$0表示一整行,$1表示通过空格分割后的第一个元素 ,$2 为第二个元素
  通过 -F 指定分割符: awk -F ':'  '{print $1}'  test.txt           ----------标识每一行用:分割成的元素,打印第一个
(2)处理管道中的内容:
  获取当前目录列表的某列元素: ls | awk '{print $1}'
  增加正则过滤,或者条件过滤: cat test.txt | awk {if {$1>0} print $1}       
                cat test.txt |awk '{/a*a/  print $1 }' 
 
 
2.grep
(1)grep  ' aaa'  test.txt     过滤出包含有aaa的行
(2)cat test.txt  |grep 'g*'    过滤出包含g开头的行
 
3.sed  
  sed命令的选项(option):
  -n :只打印模式匹配的行
  -e :直接在命令行模式上进行sed动作编辑,此为默认选项
  -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作
  -r :支持扩展表达式
  -i :直接修改文件内容
  动作说明:
• a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
• c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
• d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
• i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
• p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
• s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
 注:如果没有加上 -i 是没有实际的修改文件内容的
  未修改源文件:sed '2a  123456' test.txt   
  修改了源文件:sed -i  '2a  123456' test.txt   --在第二行后边加了一行   123456
 
对文件的的增删改查:
(1)增加  a,i
  sed -i  '2a  123456' test.txt   --在第2行的后面加1行 
  sed -i  '1,3a  123456' test.txt     --在1,2,3行后边各增加1行
'1i' test.txt   --在第1行的前面加1行 
(2)删除  d
sed -i   '2d'  test.txt   --删除第二行
  sed -i  '1,3d ' test.txt   --删除1,2,3行
 
(3)更改  c,s
  sed -i '2c 123456' test.txt   --把第二行替换成123456
  sed -i '1,2c 123456' test.txt      --把1,2行替换成一行  123456

sed 's/old/new/' test.txt          --默认替换每一行的第一个old,换成new
sed 's/old/new/gi' test.txt  --匹配所有old替换为new,g 代表一行多个,i 代表匹配忽略大小写
sed '3,9s/old/new/gi' test.txt   --替换3到9行的所有old,换成new,区分大小写
 
 (4)查询、打印
sed -n '1,3p' test.txt    --打印1-3行
  sed -n '/222/p'  test.txt   --打印正则匹配到222的行
  sed -n '/222/!p'  test.txt   --打印正则没有匹配到的行

(5)执行多条命令-e,执行文件中的命令-f
sed -e 's/系统/00/g' -e '2d' test.txt
   sed -f ab.log test.txt