sed命令详解

sed是个文档流编辑器,stream editor的简写。
其并不处理文件本身,将符合条件的文本读入内存(模式空间)进行处理。然后再将模式空间中的内容答应到屏幕。
用法如下:
sed [options] 'AddressCommand' file...
[options]为sed命令选项 'AddressCommad'为文本地址(file文件中符合条件的行)和处理命令 file为原文件。

Address的用法如下:

  1. StartLine,EndLine 指定开始行和结束行
  2. /RegExp/ 正则表达式匹配到的行
    如:
    sed '/^//d' /etc/fstab
    将/etc/fstab文件的内容读取到内存,删掉/开头的行,然后将其他内容显示到屏幕
  3. /pattern1/,/pattern2/
    第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,中间的所有行
  4. LineNumber
    指定的行
  5. StartLine,+N 开始行后到第N行中间的行

Command的用法如下:

d:删除
sed '1,2d' file
将file读取到内存并删掉1,2行,然后将其余内容显示到屏幕
p:显示符合条件的行
sed '/^//p' /etc/fstab
将/etc/fstab文件的内容读取到内存,显示/开头的行,然后其他内容也显示到屏幕,如此/开头的行就会被显示两次,所以应使用sed命令的静默模式,即
sed -n '/^//p' /etc/fstab
a: 用法 a \string在指定的行后面追加新内容string
如:sed '/^//a #'在所有/开头的行后新增一行,内容为#
i:用法 a \string在指定的行前面追加新行,内容为string
r: r FILE将指定文件的内容添加至符合条件的行处
w: w FILE将指定范围内的内容另存至指定的文件中
sed '/oot/w /tmp/oot.txt' /etc/fstab
s:s/pattern/string/查找并替换,默认值替换每行中第一次被模式匹配到的字符串,加修饰符可实现其他用途。支持如下两个修饰符

  • g:全局替换
  • i:忽略大小写
    修饰符添加在sed命令的位置
    s/pattern/string/gi
    另外/为该命令的分隔符,可以使用其他字符替换,如:
    s@pattern@string@gi
    sed '1,$s/oot/OOT/g' /etc/fstab 将/etc/fstab 中所有oot替换为OOT
    也支持后向引用
    sed 's#l..e#&r#g' test.txt
    sed 's#(l..e)#\1r#g' test.txt

sed命令的选项[options]:

-n 静默模式 不再默认显示模式空间中的内容。
-i 直接修改原文件
-e
-f /PATH/TO/SED_SCRIPT
sed of /path/to/sed_script file
history | sed 's#^[[:space:]]*##g' | cut -d' ' -f1
欢迎您了解贝程教育

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接:sed命令_Linux sed 命令用法详解:功能强大的流式文本编辑器 http://man.linu...
    e2ae5d4bd7c1阅读 4,185评论 0 1
  • sed是一种流编辑器,它是文本处理中非常好的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的...
    Summer_1981阅读 3,940评论 0 1
  • linux sed命令详解 1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行...
    很少更新了阅读 6,421评论 0 6
  • lunixs三大基本文本处理工具:grep sed awk 字符处理用法均涉及正则表达式,我们先学习正则 REGE...
    凤凰_0949阅读 3,437评论 0 1
  • shell sed命令详解 sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中...
    zplodge阅读 5,985评论 0 0

友情链接更多精彩内容