ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

sed命令--三剑客老二

2022-02-24 04:34:43  阅读:165  来源: 互联网

标签:-- fstab 一行 etc sed root cloud 三剑客


格式

sed [OPTION]... '地址定界+[高级]编辑命令' file

常用选择

  • i :修改内容
  • i.bak:先备份,然后再修改内容
  • r:支持正则表达式
  • n:不输出模式空间内容到屏幕,即不自动打印
  • e:支持多点编辑,多个条件连接字符

地址定界

  1. 不给地址: 对全文进行处理

  2. 单地址:
    num, $: 指定行,最后一行
    /pattern/:被此处模式所能够匹配到的每一行

  3. 地址范围:
    n,m: 第n行到第m行
    n,+m: 第n行到第 n+m 行
    /pat1/,/pat2/: 被此处模式所能够匹配到的之间行
    n,/pat1/:第n行到被配置到的字符串之间行

    n, m 是数字
    pat[n] 是匹配的字符串

  4. 步进
    1~2 奇数行。第一行,步长为两行
    2~2 偶数行。第二行,步长为两行

编辑命令

d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运   行~
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
w /path/somefile:保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号
!:模式空间中匹配行取反处理

示例

  1. 删除/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
[root@cloud ~]# sed -r "/^[[:space:]]*$/d" /etc/grub2.cfg
  1. 删除/etc/fstab文件中不以#开头,后面至少跟一个空白字符的行的行首的和空白字符
[root@cloud ~]# sed -r "/^# *|^$/d" /etc/fstab
  1. 在/etc/fstab文件中不以#开头的行的行首增加#号
[root@cloud ~]# sed -r -n "/^[^#]/s/(.*)/#\1/p" /etc/fstab
  1. 处理/etc/fstab路径使用sed命令取出其目录和基名
[root@cloud ~]# echo /etc/fstab | sed -r "s@(.*/)(.*$)@\2@"
  1. 利用sed取出ifconfig命令中本机的IPv4地址
[root@cloud ~]# ifconfig eth0 | sed -r -n "s/.*inet (.*) net.*/\1/p"
  1. 统计centos安装光盘中Package目录下的所有rpm文件的以. 分割倒数第二个字段的重复次数
[root@cloud ~]# mount /dev/cdrom /opt/dvd
[root@cloud ~]# ls /opt/dvd/Packages/ | sed -r "s/.rpm$//" | sed -r "s/.*\.(.*)/\1/" | sort | uniq -c
[root@cloud ~]# ls /opt/dvd/Packages/ | sed -r "s/.*\.(.*).rpm/\1/" | sort | uniq -c
  1. 将文本文件的n和n+1行合并为一行,n为奇数行
[root@cloud ~]# seq 10|xargs -n2
[root@cloud ~]# seq 10|sed 'N;s/\n/ /'

标签:--,fstab,一行,etc,sed,root,cloud,三剑客
来源: https://www.cnblogs.com/jiaxzeng/p/15929948.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有