Linux sed使用

sed命令使用

sed 的 -i 选项可以直接修改文件内容

增加
  • 在第一行添加插入nginx,之前第一行内容会到下一行
    sed -i '1i nginx' /home/env.conf
    
  • 在指定文件中第三行增加nginx
    sed -i "3i nginx" /home/entrypoint.sh
    
  • 在第五行添加内容,新的内容会在下一行出现
    sed -i '5a nginx' /home/env.conf
    
  • 在最后一行添加内容
    sed -i '$a nginx' /home/env.conf
    
删除
  • 删除第一行内容
    sed -i '1d' /home/env.conf
    
  • 删除第四行内容
    sed -i '4d' /home/env.conf
    
  • 删除5 - 7行内容
    sed -i '5,7d' /home/env.conf
    
  • 删除最后一行
    sed -i '$d' /home/env.conf
    
  • 删除空行
    sed "/^$/d" /home/env.conf
    
  • 删除匹配上模式的行
    sed -i "/pattern/d"  log.txt
    
  • 删除匹配行的上一行和下一行
    sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' filename
    
  • 删除匹配到特定字符所在行的上一行
    sed -i -e '$!N;/\n.*string/!P;D' filename
    
  • 删除匹配到特定字符所在行的下一行
    sed -i -e '/string/{n;d}' filename
    
替换
  • /home/test/下所有文件中nginx替换为apache
    sed -i "s/nginx/apache/g" `grep nginx -rl /home/test/`
    
  • 将8行内容替换成nginx
    sed -i "8c nginx" /home/log.txt
    
  • 将2 - 5行内容替换成nginx
    sed -i "2,5c nginx" /home/log.txt
    
  • 替换空白字符为其他字符
    sed -i -e 's/[[:space:]][[:space:]]*/,/g' file
    
  • 给匹配到文件中具体的字符串的下一行插入一行数据
    sed -i '/listen/a\listen 80' filename
    
  • 给匹配到文件中具体的字符串的上一行插入一行数据
    sed -i '/listen/i\listen 80' filename
    
  • 在匹配到特定字符串的某行后批量插入多行数据
    sed -i '/syncsendmsg.php/a\#013.平台广告小时计划每5分钟写入主平台 xxx 2019-07-04\n*/5 * * * * /usr/bin/php /data/cron/ptask/countjs_syc_plan_main.php\n*/5 * * * * /usr/bin/php /data/cron/ptask/countjs_syc_plan_h_main.php' filename
    
查询
  • 仅列出 /etc/passwd 文件内的第 5-7 行
    sed -n '5,7p' /home/env.conf
    
  • 搜索 /etc/passwd 有root关键字的行
    sed '/root/p' /etc/passwd
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值