正则表达式与文本处理器

正则表达式

        基础正大表达式

                查看特定字符 grep


grep-n 'the' test.txt
grep-in 'the' test.txt

                        -n 显示行号

                        -i  不区分大小写

                        -v 反转查找

                        [] :中括号里可以写元素,内容符合任意元素,就会过滤出来

                        ^ :写在中括号里,代表取反。以^开头,后面的内容,代表以此内容开头

                        \:转译,失去特殊字符的含义,当作普通字符使用

                        . :匹配字符,可代替任意字符使用,除换行

                        {} :

                                {3} 前一个字符匹配3次

                                {3,6} 前一个字符匹配3或6次

                        *:前面的内容匹配0次或多次

        扩展正则表达式

sed工具概述

                文本处理工具,读取文本内容,根据指定的条件进行处理,如删除、替换、添加等
                可在无交互的情况下实现相当复杂的文本处理操作
                被广泛应用于shell脚本,以完成自动化处理任务
                sed依赖于正则表达式

        工作原理

                读取 执行 显示

                -n显示处理后的内容,p打印

                        sed -n 'p' test.txt

                打印指定行,打印第几行到第几行

                        sed -n '1p' test.txt sed -n '3,5p' test.txt

                进行筛选打印

                        sed -n '/the/p' test.txt sed -n '/[0-9]$/p' test.txt //打印以数字结尾的内容

                删除指定行

                        sed '3d' test.txt //只显示删除完后的内容但不会删除源文件 sed '3,5d' test.txt //删除第几行到第几行 sed -i '3d' test.txt //没有回显直接进行源文件删除 sed -i '^$' test.txt //删除空格

                替换内容

                        sed -i 's/the/THE/' test.txt //把小写的the替换为THE,只替换每行开头符合条件的 sed 's/a/A/g' test.txt //-g代表全局修改 sed 's/^/#/g' test.txt //开头进行批量注释 sed 's/$/#/g' test.txt //结尾进行批量注释 sed '/^[a-z]/s/^/#/g' test.txt //在所有小写字母开头进行注解

awk工具介绍

功能强的编辑工具

内置变量

FS:指定每行文本的字段分隔符,缺省为空格或制表位

NF:当前处理的行的字段个数

NR:当前处理的行的行号

$0:当前处理行的整行内容

$n:当前处理行的第n个字段

打印每行的第6个字段,并且去掉%跟开头的第一行

df -Th | awk '{print $6}' | awk -F '%' 'NR!=1 {print $1}' 0 0 2 0 3 1 14 0

打印第六列,第七列并去掉开头, 去掉百分号,判断$1>10 就展示对应的$2

df -Th | awk 'NR!=1{print $6,$7}' | awk -F '%' '$1 >10 {print $2}' //$1指的是第一部分过滤后的$6, $2指的是第一部分过滤后的$7

统计以root开头的内容有几行

awk '/^root/{print | "wc -l"}' /etc/passwd

排序以a-z的顺序进行排序

sort 文件名

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值