Shell文本处理 (4) sed、awk、diff、patch、

1、行操作 sed

cat  txt | sed  '2d‘      // 删除第2行

cat  txt | sed  '2,5d’      // 删除第2-5行'

cat  txt | sed  '2,$d‘      // 删除第2到最后1行

cat  txt | sed  '2a   hhhhhhh'      // 第2后加上一行hhhhhhh

cat  txt | sed  '2i   hhhhhhh'      // 第2前加上一行hhhhhhh

cat  txt | sed  '2,5c   hhhhhhh'      // 第2-5 替换为hhhhhhh

cat  txt | sed  -n  '2,5p'      // 取出第2-5 行

cat  txt | sed  -s   's/aaa/bbb/g'    // aaa替换为bbb,其中aaa可以是正则表达式

cat  txt | sed  -s   's/#.*$//g'    // 删除批注

cat  txt | sed  -s   's/*$//g'    // 删除空白行


2、行分段操作 awk

last | awk '{   print  $1  "\t"   $3}'     //按默认的空格或tab分隔,打印第1和第3列

last | awk '{   print  $1  "\t   line No.: " NR  “\t  column No.: ”   NF }'     ///按默认的空格或tab分隔,打印第1列,打印行号NR,行字段总数NF

last | awk ' BEGIN  {FS=“;”}     {   print  $1  "\t"   $3}'     //按分号; 分隔,打印第1和第3列

last | awk ' BEGIN  {FS=“;”}   $3>10  {   print  $1  "\t"   $3}'     //按分号; 分隔,若第3列大于10,打印第1和第3列

cat pay.txt | awk '    (NR==1)  {  printf  “%10s  %10s  %10s  %10s  %10s  \n  ”, $1,  $2, $3, $4, "Total"  }

  (NR>=2)  {  total=$2+$3+ $4   printf  “%10s  %10s  %10s  %10s  %10s  \n  ”, $1,  $2, $3, $4, total  }  '       // 第一行表头,从第二行开始统计


3、比较 diff


4、补丁pitch 















posted @ 2015-02-19 19:26  lihui1625  阅读(120)  评论(0编辑  收藏  举报