当前位置: 首页 > news >正文

sed常用



【打印】

nl /etc/issue | sed -n  '1,2p'


解释

1,2 指定行

p 打印的动作

-n 选项默认不输出。(sed 默认的是不匹配的也将输出) -n 选项和p行为时长一起出现。




【替换】

语法:sed ’s#正则#不可用正则表达式#g’  作用替换为空

如: 更改salt-minion配置文件  /etc/salt/minion  修改master和id

正常字符之间的替换

1
sed   -i   's/#master: salt/master: 10.59.72.1/g'  /etc/salt/minion

使用系统变量的:

1
sed  -i   "s/#id:/id: `hostname`/g"    /etc/salt/minion


【分组替换】

()起来的分组,可以使用\1代替第一个分组,\n代替第n个分组

1
ifconfig  eth0 |  sed  -n  's#^.*inet addr:\(.*\)  Bcast.*$#\1#gp'


【替换】


【指定行插入】

首行插入

1
sed  -i  '1i\newlineword\n'   /etc/issue


指定行后面追加()

nl /etc/issue | sed '1,2i\insert oneline\n换行符'



解释:

1,2 行指定的位置

i 为 插入(在指定位置处插入)




【删除指定行】

把第一行第二行删除

nl /etc/issue | sed  '1,2d'  



【模式匹配地址】

匹配地址Addresses的方式有

1、地址行指定如 

    单行: 1

    多行: 1,2

    $表示最后一行:3,$

    addr1,+N: nl /etc/issue | sed -n  '1,+2p'

    addr1,~N: nl /etc/passwd | sed -n  '2,~3p'  从第二行开始到3的倍数为止

    first~step: nl /etc/passwd | sed -n  '2~3p' 打印first+N*step步长的行


2、正则匹配

    /regexp/ 正则匹配: nl /etc/issue | sed -n  '/[cC]ent[oO][sS]/p'

     

3、取反

    不匹配行的取反:nl /etc/passwd | sed -n  '/nologin/!p'

            nl /etc/passwd | sed  '/nologin/!d' 

    


实例: 打印奇数行

nl /etc/passwd | sed -n  '1~2p'


删除#开头的

sed  -e '/release/d' -e '/^#/d' file.cnf


 



【正则表达式】

特殊字符意义

&表示引用前面匹配的字符

# sed -i 's/root/(&)/g' test                   




[被替换的字符串中含有变量]

zone="ipo.com"

echo "a.txt.ip.cn| "sed "s#.$zone.##g"

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1787190如需转载请自行联系原作者


cuizhiliang

相关文章:

  • sublime配置文件
  • 性能测试之手机号码python生成方式
  • centos7 安装 keepalived
  • nginx访问http80端口跳转https443端口
  • 10.6 监控io性能;10.7 free;10.8 ps;10.9 查看网络状态;10.10 抓包
  • shell $$ 的详解
  • Struts1.x 跨站脚本(XSS)漏洞的解决
  • 综合应用WPF/WCF/WF/LINQ之三十:代码生成器之DBMLToDAL
  • Cocos Creator 音频API控制调频
  • OpenGL ES 之对各种坐标系统的记录理解
  • Git 仓库结构 (二)***
  • 使用WCF Test Client(WcfTestClient.exe) 来测试WCF
  • Internet Connectivity Evaluation Tool
  • CCF201412-2 Z字形扫描 java(100分)
  • [SoftGrid 系列] Microsoft SoftGrid Server 安装篇
  • 【译】理解JavaScript:new 关键字
  • Intervention/image 图片处理扩展包的安装和使用
  • iOS 颜色设置看我就够了
  • JavaScript 奇技淫巧
  • Java基本数据类型之Number
  • js继承的实现方法
  • LintCode 31. partitionArray 数组划分
  • 当SetTimeout遇到了字符串
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 聊聊redis的数据结构的应用
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前端面试之闭包
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 我们雇佣了一只大猴子...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​学习一下,什么是预包装食品?​
  • # 透过事物看本质的能力怎么培养?
  • #、%和$符号在OGNL表达式中经常出现
  • #ifdef 的技巧用法
  • #NOIP 2014# day.2 T2 寻找道路
  • #Z0458. 树的中心2
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)二分查找 超详细
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)mysql使用Navicat 导出和导入数据库
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • ./configure,make,make install的作用
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net解析传过来的xml_DOM4J解析XML文件
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • @AutoConfigurationPackage的使用
  • @RequestParam详解