码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • shell编程中的正则表达式和文本处理工具


    1. 常规匹配

    一串不包含特殊字符的正则表达式匹配它自己

    cat 目标文档 | grep 需查找的字符
    
    • 1

    2. 常用特殊字符

    2.1 特殊字符:^

    ^匹配一行的开头

    grep ^a
    
    • 1

    会匹配出所有a开头的内容

    2.2 特殊字符:$

    $匹配一行的结束

    grep a$
    
    • 1

    会匹配出所有以a结尾的内容
    ^$会匹配出所有的空行

    2.3 特殊字符:.

    .匹配一个任意的字符

    grep x..y
    
    • 1

    会匹配出xaby xvcy等的所有行

    2.4 特殊字符:*

    *不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次

    grep x*y
    
    • 1

    会匹配出xy xxy xxxy等的所有行
    ^a.*b$会匹配出以a开头,以b结束的所有行,ab之间的内容为.*,表示随便是什么内容都可以

    2.5 字符区间(中括号):[]

    []表示匹配某个范围内的一个字符

    格式功能
    [6,8]匹配 6 或者 8
    [0-9]匹配一个 0-9 的数字
    [0,9]*匹配任意长度的数字字符串
    [a-z]匹配一个 a-z 之间的字符
    [a-z]*-匹配任意长度的字母字符串
    [a-c, e-f]匹配 a-c 或者 e-f 之间的任意字符

    2.6 特殊字符:\

    \表示转义,和特殊字符组合使用,比如grep '\$'就可以匹配出带有$的内容了
    注意需要使用单引号将表达式引起来

    3. 文本处理工具

    3.1 cut

    通过cut [选项参数] filename的方式就可以对目标文件进行特定裁剪

    格式功能
    -f列号,提取第几列
    -d分隔符,按照指定分隔符分割列,默认是制表符“\t”
    -c按字符进行切割 后加加 n 表示取第几列 比如-c 1

    先创建一个hello_world.sh文件
    执行cut -d " " -f 1 hello_world.sh就会以下内容,表示按制表符切分文件,并取第一列

    #!/bin/bash
    
    echo
    
    • 1
    • 2
    • 3

    执行cut -d "/" -f 1 hello_world.sh就会得到以下内容,表示按/切分文件,并取第一列

    #!
    
    echo "hello world"
    
    • 1
    • 2
    • 3

    执行cut -c 1-4 hello_world.sh就会得到以下内容,表示按字符切割,取第1位到第4位字符

    #!/b
    
    echo
    
    • 1
    • 2
    • 3

    3.2 awk

    通过awk [选项参数] '/pattern1/{action1} /pattern2/{action2}...' filename的方式就可以对目标文件进行特定裁剪
    其中pattern表示 awk 在数据中查找的内容,就是匹配模式
    action表示在找到匹配内容时所执行的一系列命令

    格式功能
    -F指定输入文件分隔符
    -v赋值一个用户定义变量
    内置变量功能
    FILENAME文件名
    NR已读的记录数(行号)
    NF浏览记录的域的个数(切割后,列的个数)
  • 相关阅读:
    周界警戒AI算法+视频智能分析在安全生产场景中的应用
    操作系统初识
    Spring及Spring boot 第四章-第二节 Spring声明式事务管理 拦截过程
    3.3 ss-sp寄存器,栈的push和pop指令
    PHP数组处理$arr1转换为$arr2
    操作系统实验 动态最高优先级调度算法(C++实现)
    【Rust】4 一文讲解重点 pattern matching | trait | 生命周期 | 闭包 | 迭代器 | 智能指针 | 并发与并行
    java——事务
    springboot源码理解六、run方法执行过程(获取启动监听器、构建上下文环境、初始化应用上下文)
    挖矿病毒之CoinMiner入侵SQLServer
  • 原文地址:https://blog.csdn.net/weixin_44999258/article/details/126450995
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号