shell编程系列12--文本处理三剑客之sed利用sed修改文件内容

复制代码
shell编程系列12--文本处理三剑客之sed利用sed修改文件内容

修改命令对照表

编辑命令
1s/old/new/                替换第1行内容old为new
1,10s/old/new/                替换第1行到10行的内容old为new
1,+5s/old/new/                替换1行到6行的内容old为new
/pattern1/s/old/new/            替换匹配到pattern1的行内容old为new
/pattern1/,/pattern2/s/old/new/        替换匹配到pattern1的行直到匹配到pattern2的所有行内容old为new
/pattern1/,10s/old/new/            替换匹配到pattern1的行到10行的所有行内容old为new
10,/pattern1/s/old/new/            替换第10行直到匹配到pattern1的所有行内容old为new


修改用法总结:
    1、1s/old/new/
    25,10s/old/new/
    310,+10s/old/new/
    4、/pattern1/s/old/new/
    5、/pattern1/,/pattern2/s/old/new/
    6、/pattern1/,20s/old/new/
    715,/pattern1/s/old/new/

练习例子:
    1、修改/etc/passwd中第1行第1个root为ROOT
        sed -i '1s/root/ROOT/' passwd
    2、修改/etc/passwd中第5行到第10行中所有的/sbin/nologin为/bin/bash
        sed -i '5,10s/\/sbin\/nologin/\/bin\/bash/g' passwd
    3、修改/etc/passwd中匹配到/sbin/nologin的行,将匹配到行中的login改为大写的LOGIN
        sed -i '/\/sbin\/nologin/s/login/LOGIN/g' passwd
    4、修改/etc/passwd中从匹配到以root开头的行,到匹配到行中包含mail的所有行。修改匹配到的行中的bin修改为HADOOP
        sed -i '/^root/,/mail/s/bin/HADOOP/g' passwd
    5、修改/etc/passwd中从匹配到以root开头的行,到第15行中的所有行,修改内容为将这些行中的nologin为SPARK
        sed -i '/^root/,15s/nologin/SPARK/g' passwd 
    6、修改/etc/passwd中从第15行开始,到匹配到以post开头的所有行,修改这些行中的bin为BIN
        sed -i '15,/^post/s/bin/BIN/g' passwd

# 删除文本中的所有数字
[root@localhost shell]# cat file.txt 
Hadoop Spark Flink 3435
1002 Test string
[root@localhost shell]# sed -i 's/[0-9]*//g' file.txt 
[root@localhost shell]# cat file.txt 
Hadoop Spark Flink 
 Test string
复制代码

# 生产案例:找到网站下所有的html 页面,并且导出到 csv 文件中

find /data/www/vhosts/chinasoft.net/httpdocs -name '*.html' >/opt/chinasoft/chinasoft.net.csv;sed -i 's#\/data\/www\/vhosts\/chinasoft.net\/httpdocs#https\:\/\/chinasoft.net#g' /opt/chinasoft/chinasoft.net.csv

posted @   reblue520  阅读(356)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示