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

正则表达式和文件格式化

作者: 魔芋辣椒 | 来源:发表于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