sed命令详解

sed命令详解,第1张

概述Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... [OPTION] -n 不输出模式空间内容到屏幕,即不自动打印 -e 多点编辑 -f /PATH/SCRIPT_FILE。从指定文件中读取编辑脚本 -r 支持使用扩展正则表达式 -i.bak 备份文件并原处编辑 {script-only-if-no-oth Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

[OPTION]

-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f /PATH/SCRIPT_file。从指定文件中读取编辑脚本
-r 支持使用扩展正则表达式
-i.bak 备份文件并原处编辑

{script-only-if-no-other-script}
地址定界+[高级]编辑命令

地址定界    1.不给地址:对全文进行处理    2.单地址:        #:指定的行 , $:最后一行        /pattern/:被此处模式所能够匹配到的每一行    3.地址范围        #,#        #,+#        /pat1/,/pat2/        #,/pat1/    4. ~:步进        1~2 奇数行        2~2 偶数行编辑命令    d:删除模式空间匹配的行,并立即启用下一轮循环    p:打印当前模式空间内容,追加到默认输出之后    a[\]text:在指定行后面追加文本,支持使用\n实现多行追加    i[\]text:在行前插入文本    c[\]text:替换行为单行或多行文件    w /path/somefile:保存模式匹配的行至指定文件    r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后    =:为模式空间中的行打印行号    !:模式空间中匹配行取反处理高级编辑命令    P:打印模式空间开端至\n内容,并追加到默认输出之前    h:把模式空间中的内容覆盖至保持空间中    H:把模式空间中的内容追加至保持空间中    g:从保持空间取出数据覆盖至模式空间    G:从保持空间取出数据追加至模式空间    x:把模式空间中的内容与保持空间中的内容进行交换    n:读取匹配到的行的下一行覆盖至模式空间    N:读取匹配到的行的下一行追加至模式空间    d:删除模式空间中的行 D:如果模式空间包含换行符,则删除知道第一个换行符的模式空间中的文本,      并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会像发       出d命令那样启动正常的新循环

例题
1.删除/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符

[[email protected] ~]# sed -r "/^[[:space:]]*$/d" /etc/grub2.cfg

2.删除/etc/fstab文件中不以#开头,后面至少跟一个空白字符的行的行首的和空白字符

[[email protected] ~]# sed -r "/^# *|^$/d" /etc/fstab

3.在/etc/fstab文件中不以#开头的行的行首增加#号

[[email protected] ~]# sed -r -n "/^[^#]/s/(.*)/#/p" /etc/fstab

4.处理/etc/fstab路径使用sed命令取出其目录和基名

[[email protected] ~]# echo /etc/fstab | sed -r "[email protected](.*/)(.*$)@\[email protected]"

5.利用sed取出ifconfig命令中本机的IPv4地址

[[email protected] ~]# ifconfig eth0 | sed -r -n "s/.*inet (.*) net.*//p"

6.统计centos安装光盘中Package目录下的所有rpm文件的以. 分割倒数第二个字段的重复次数

[[email protected] ~]# mount /dev/cdrom /opt/dvd[[email protected] ~]# ls /opt/dvd/Packages/ | sed -r "s/.rpm$//" | sed -r "s/.*\.(.*)//" | sort | uniq -c[[email protected] ~]# ls /opt/dvd/Packages/ | sed -r "s/.*\.(.*).rpm//" | sort | uniq -c

7.将文本文件的n和n+1行合并为一行,n为奇数行

[[email protected] ~]# seq 10|xargs -n2[[email protected] ~]# seq 10|sed ‘N;s/\n/ /‘
总结

以上是内存溢出为你收集整理的sed命令详解全部内容,希望文章能够帮你解决sed命令详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1022551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存