码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Shell 编程三剑客


    目录

    一、grep

    参数:

    1.1 -q 静默

    1.2 grep -v   去反​编辑

    1.3 grep -R 可以查看目录下面的文件

    1.4 grep -o 只找到这个关键字就可以

    1.5 egrep -l 只要文件名

    1.6 egrep -n 带行号

    二、SED

    实例:

    2.1 删除命令:d

    2.2 替换命令: s

    2.3 读取文件命令:r

    2.4 写入文件命令:w

    2.5 追加命令:a

    2.6 插入命令:i

    2.7 替换整行命令:c

    2.8 获取下一行命令:n

    2.9 反向选择:!

    2.10 多重编辑:e

    2.11 实战案例

    三、awk

    3.1 前言

    3.2 工作原理

    3.3 语法

    3.4 格式化输出 print函数

    3.5 模式(正则表达式)和动作

    3.6 awk脚本变量

            3.6.1 条件&判断

            3.6.2 循环

            3.6.3 数组

    3.7 案例:


    一、grep

    功能:过滤查找内容

    分类: grep

    egrep 扩展支持正则

    fgrep 就是不支持正则

    参数:

    1.1 -q 静默

    1.2 grep -v   去反

    1.3 grep -R 可以查看目录下面的文件

    1. grep -R /home/
    2. 匹配到二进制文件 .cache/mozilla/firefox/ro8zkjdr.default-default/cache2/entries/5773F8741C801CA8FA6328E33D4912694A3E2A8A

    1.4 grep -o 只找到这个关键字就可以

    1. [root@localhost ~]# grep -o "o" 1.txt
    2. o
    3. o
    4. o
    5. o
    6. o
    7. o

    1.5 egrep -l 只要文件名

    1. [root@localhost ~]# egrep -l 'root' /etc/passwd
    2. /etc/passwd

    1.6 egrep -n 带行号

    1. [root@localhost ~]# egrep -n 'root' /etc/passwd
    2. 1:root:x:0:0:root:/root:/bin/bash
    3. 10:operator:x:11:0:operator:/root:/sbin/nologin

    二、SED

     

    实例:

    2.1 删除命令:d

    1. sed -r '/root/d' passwd 删除带有root的行
    2. sed -r '3d' passwd 删除第3行
    3. sed -r '3{d}' passwd 删除第3行
    4. sed -r '3{d;}' passwd {存放sed的多个命令}3{h,d},h暂存空间
    5. sed -r '3,$d' passwd 删除3-最后一行
    6. sed -r '$d' passwd 删除最后一行

    2.2 替换命令: s

    1. sed -r 's/root/aofo/' passwd 把root 替换成aofo
    2. sed -r 's/^root/aofo/' passwd 把以root 开头的行root替换成aofo
    3. sed -r 's/root/aofo/g' passwd 全部把root替换成aofo
    4. sed -r 's/[0-9][0-9]$/&.5' passwd 查找双数,结尾的词组&,替换成.5
    5. &有查询结果的含义
    6. sed -r 's/(mail)/E\1/g' passwd 把全部的词mail 换成Eail
    7. ()括号组合字符,\1调用括号
    8. sed -r 's/#(mail)#E\1/g' passwd

    2.3 读取文件命令:r

    2.4 写入文件命令:w

    1. sed -r 'w 111.txt' 1.txt 把1.txt 全部内容写入111.txt
    2. sed -r '/root/w 123.txt' passwd 把1.txt 写入111.txt
    3. sed -r '1,5w 123.txt' passwd 把paawd的1,5行写入123.txt文件

    2.5 追加命令:a

    1. [root@localhost ~]# sed -r 'a123' 1.txt 在文件1.txt内容中每行后面+123
    2. ##abc
    3. 123
    4. ##adc
    5. 123
    6. # sed -r '2a123' 1.txt 第二行后面,加上123行
    7. ##abc
    8. ##adc
    9. 123
    10. [root@localhost ~]# sed -r '2a 111\ 第二行后面加上1111 333`````
    11. > 333\
    12. > 444\
    13. > 2222' 1.txt
    14. ##abc
    15. ##adc
    16. 111
    17. 333
    18. 444
    19. 2222

    2.6 插入命令:i

    1. [root@localhost ~]# sed -r '2iaaaaaaaaaaaaaaa' 1.txt
    2. ##abc
    3. aaaaaaaaaaaaaaa 在第二行插入aaaaaaaaaaaaa

    2.7 替换整行命令:c

    1. sed -r '2c3333' 1.txt 把文件1.txt中第二行替换成3333
    2. ##abc
    3. 3333

    2.8 获取下一行命令:n

     

    注:不能存在特殊字符

    2.9 反向选择:!

    2.10 多重编辑:e

    1. sed -e '1,3d' -e 's/123/1111111111111111111111111/g' 1.txt
    2. 删除1-3行,把1.txt中的123 替换成1111111111111
    3. ##bac
    4. #love
    5. #LOve
    6. Love
    7. i love
    8. i love you
    9. hhhh
    10. abcdefhhhgggff
    11. l.ve
    12. lve
    13. love
    14. le
    15. 1111111111111111111111111
    16. 124355656
    17. 11111111111111111111111114545678
    18. 11111
    19. 2222222222333333333

    2.11 实战案例

    删除配置文件中#号的注释行

    1. sed -r '2,6s/^/#/' 1.txt 把文件1.txt2-6行开始换成#
    2. sed -r '2,6s/(.*)/#\1/' 1.txt ()内容可以被1引用
    3. sed -r 's/(.*)/#\1/' 1.txt 内容开头全部替换成#
    4. sed -r '2,6s/.*/#&/' 1.txt &匹配前面查找的内容

    三、awk

    3.1 前言

    3.2 工作原理

    1. cat /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash
    3. bin:x:1:1:bin:/bin:/sbin/nologin
    4. [root@mycat ~]# awk -F: '{print $1,$3}' /etc/passwd
    5. root 0
    6. bin 1

    3.3 语法

     

     

    1. [root@mycat ~]# awk 'BEGIN{print "ok"}END{print "--------"}' /etc/hosts
    2. ok
    3. --------

    3.4 格式化输出 print函数

    1. [root@mycat ~]# awk -F: '{print "username is:" $1 "\t uid is:" $3 }' /etc/passwd |head -1
    2. ****打印 文件/etc/passwd第一行,第一列用户名 第三列UID*****
    3. username is:root uid is:0
    1. [root@mycat ~]# date | awk '{print "Month:" $2 "\nYear:" $1}'
    2. Month:06月
    3. Year:2022年

    3.5 模式(正则表达式)和动作

    1. [root@mycat ~]# awk '$0 ~/^root/' /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash
    3. $0 : 计算行数
    4. ~ : 模糊查找;好像的意思
    5. ^root : 以root开头的
    6. ! : 反向;不是的意思
    7. awk -F: '$1 ~ /^root/' /etc/passwd
    8. root:x:0:0:root:/root:/bin/bash

     

    3.6 awk脚本变量

            3.6.1 条件&判断

     

            3.6.2 循环

             3.6.3 数组

    1. #定义数组
    2. [root@mycat ~]# awk -F: '{username[++i]=$1}END{print username[1]}' /etc/passwd
    3. root
    1. #数组遍历
    2. [root@mycat ~]# awk -F: '{username[i++]=$1}END{for(i in username){print i,username[i]} }' /etc/passwd
    3. 10 games
    4. 11 ftp
    5. 12 nobody
    6. 13 systemd-network
    7. 14 dbus
    8. 15 polkitd
    9. 16 libstoragemgmt
    10. 30 usbmuxd
    11. 17 colord

    3.7 案例:

     

     

     

  • 相关阅读:
    jsp高校学生资助管理系统myeclipse开发mysql数据库serlvet技术BS模式java编程网页结构
    Java遍历目录下的所有文件
    Python 既是解释型语言,也是编译型语言
    【快速上手】使用SpringBoot 2.X + Mybatis-Plus 轻松实现CRUD
    Kerberos (四) --------- 安全集群使用说明
    Git rebase 用法说明
    winform 自定义数值(数字)输入框
    Say0l的安全开发-代理扫描工具-Sayo-proxyscan【红队工具】
    发现区块链世界的新大门——AppBag.io DApp导航网站全面解析
    拦截|篡改|伪造.NET类库中不限于public的类和方法
  • 原文地址:https://blog.csdn.net/benziwu/article/details/125245905
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号