美文网首页
正则表达式和文件格式化

正则表达式和文件格式化

作者: 魔芋辣椒 | 来源:发表于2020-07-18 09:32 被阅读0次

    一、符号意义

    1.1 ^

    在[]内表示否,[]外表示行首

    1.2 $

    表示行尾
    找空白行 grep -n '^$' xxx.txt

    1.3 .

    表示绝对有一个任意字符

    1.4 *

    表示拥有0个及以上的前一个字符
    找g开头g结尾 grep -n 'g.*g'

    1.5 {}

    限定连续字符范围

    • gg中间有两个o的 grep -n 'go\{2\}g'
    • gg中间有2-5个o的grep -n 'go\{2,5\}'
    • gg中间有2-∞个o的grep -n 'go\{2,\}'

    二、sed ['acdips']

    管道命令, 增加替换删除插入打印替换
    对命令行中列出的内容进行操作,而非删除文件内容

    • 删除: 'x,xd' 删除x-x行
      sed '2d' 删除第二行
      sed '2,$d' 删除第二行至最后一行
    • 新增 ‘xa xxxxxx’ 在x行后面一行,新增xxxxx内容
    • 插入 'xi xxxxxx' 在x行前面一行,新增xxxxx内容
      sed '2a Drink tea \
      drink bear'
      每行在末尾加入\,实现多行插入
    • 替换 'x,xc xxxxx' 将x,x行替换为内容xxxxx
    • 打印 'x,xp'
      sed '5,7p' 打印第五行到第七行
    • 部分数据的替换 's/要被替换的字符/新字符/g'
      sed 's/*netmask.*$//g'

    三、awk

    3.1 拥有的成员
    • $0123...
      $0 代表文件的所有列
      $123.. 代表该行第i个字段
    • NF、NR、FS
      NF 每一行拥有的字段总数
      NR 目前awk所处理的是第几行数据
      FS 目前分隔字符

    awk '{print $1 "\t lines: " NR "\t colums : " NF}'

    计算以下数据之和,并打印

    NAME   1st  2nd  3th 
    a  23000 24000 25000
    
    awk 'NR==1 {printf "%10s %10s %10s %10s %10s\n",$1,$2.$3,$4,"total"}
    NR>=2 {total=$2+$3+$4
    printf "%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}'
    

    相关文章

      网友评论

          本文标题:正则表达式和文件格式化

          本文链接:https://www.haomeiwen.com/subject/nqaqcktx.html