cmd 文本最后一行_linux文本处理三驾马车

一、grep工具

  • grep 'pattern' 待搜索文本 fgrep 'pattern' 待搜索文本
    • 两者区别: fgrep中 'pattern'并不解释为正则表达式
    • -c:计算符合条件的行数
    • -n :搜索的结果中自动添加行号
    • -v : 输出符合搜索结果的补集
    • -i :搜索时忽略大小写
    • -A n A是After的意思,表示将满足条件的行,下面n行输出出来
    • -B n B是before的意思,表示将满足条件的行,上面n行输出出来
  • grep -l 'pattern' 文件名 查询该文件的内容是否包含符合pattern的内容,符合则输出该文件名

二、sed工具

  • sed 结构: sed [options] ‘pattern 操作’ 输入文件
  • sed工作逻辑

3ce0a6a271cdadb42929ae5a49bcd03d.png
  • sed 内置变量
    • $d 读入文件的最后一行
  • sed常见option-[options]
    • -e:以选项中的指定的script来处理输入的文本文件
    • -f:以选项中指定的script文件来处理输入的文本文件
    • -n:仅显示script处理后的结果
    • p:筛选行
      • sed 不是筛选行的强项,优先使用grep
      • 根据行号筛选:sed -n '2,$p' file.text # 筛选从2至最后一行
      • 根据pattern匹配筛选:sed -n '/pattern/p' file.text
  • sed常见 ‘pattern 操作’
    • 删除操作:d命令
      • sed '/^$/d' file # 删除空白行
      • sed '2,$d' file.text # 删除2至最后一行,逗号表示“至”
    • 替换操作:s/pattern/replace/g
      • g 参数:设置全局替换
    • 行上插入内容:i插入内容
      • sed '/^test/ithis is a test line' file # 将 this is a test line 追加到以test开头的行前面
    • 行下追加内容:a追加内容
      • sed '/^test/athis is a test line' file # 将 this is a test line 追加到 以test 开头的行后面
    • 写入文件:w
      • sed -n '/test/w file' example # 在example中所有包含test的行都被写入file里

三、awk工具

  • awk 结构:awk [options] 'BEGIN{ [options] 操作} pattern{ [options]操作} END{ [options]操作}' 输入文本
  • awk工作逻辑

f56fce4d5ae88af95eaa2c650e406d20.png
  • awk内置变量
    • NR 当前读入的文本共有多少行(从1开始编号)
    • NF 表示当前读入的行内容共有多少列(字段数)
    • $0 代表awk每次读入的行的所有内容
    • $1-$n awk每次读入的行内容按照列分隔符分割后的每列元素(字段)
    • RS 输入文本行之间的分隔符(默认是换行符)
    • ORS 输出文本行之间的分隔符(默认是换行符)。
    • FS awk每次读入的行内容的字段分隔符(默认是空格)
    • OFS awk每次输出行内容的字段分隔符(默认值是空格)
    • NR 表示记录数,在执行过程中对应于当前的行号
  • awk常用命令选项[options]
    • 设置字段分隔符
      • 默认的字段定界符是空格
      • -F "分隔符" 可用于明确指定一个定界符
      • 也可在BEGIN语句块中则可以用FS=“定界符”设置输入字段的定界符
      • 可在BEGIN语句块中则可以用OFS=“定界符”设置输出字段的定界符
    • -v var=value 赋值一个用户定义变量,将外部变量传递给awk
  • awk常用pattern
    • 默认执行{ print },即打印每一个读取到的行
    • /正则表达式/
    • 关系表达式:awk运算符
    • 条件判断语句
  • awk常用操作{操作}
    • awk结果输出到文件:支持重定向与追加
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值