美文网首页
Linux命令之sed

Linux命令之sed

作者: H猫眼里的半途 | 来源:发表于2019-07-01 09:10 被阅读0次

sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

语法格式:

sed [option] 'command' file_name 
sed [options] -f scriptfile file(s)
选项 说明
-e 多点编辑,可以执行多个子命令
-f 可以从脚本中读取命令
-i 直接编辑源文件
-r 在命令中使用扩展表达式
-n 只有经过特殊处理的行才会被输出

命令前通常跟的是行的选择规则,如行号选择、关键字匹配等。

命令 说明
a:\ 追加字符串,在选中的行后追加a命令后跟着的字符串为一行
c:\ 替换行,使用c命令后的字符串替换选中的行
d 删除,删除选中的行
i:\ 插入字符串,在选中行之前插入i命令后跟着的字符串为一行
p:\ print打印,打印当前选择的行到屏幕
s:\ 替换字符串,用法:1,2s/old_str/new_str/g,g指定全面替换,也即替换行内所有匹配的值
w:\ 写入文件,将匹配的行写入文件

s替换命令格式:sed '位置参数 s/pattern/replaced/[flag]'
其中flag选项用来影响替换规则:

选项 说明
g 全局替换
n 替换行内匹配的第n个字符串
p 替换第一个匹配的字符串,并且将缓冲区输出到标准输出
w 替换第一个匹配的字符串,并且将改动的行输出到磁盘文件中
省缺 替换文本行第一个匹配字符串

命令示例

sed '1,3p' a.txt  #输出文件1-3行
sed '1~3p' a.txt #从第一行开始输出,步长为3
sed '1,$p'  a.txt #输出第一行到最后一行
sed -i "s/letitia/hello world/g" `grep "letitia" -rl test1.txt`
sed '/^$/d' file #删除空白行
sed -n -e '1,/^ma/ s/l/L/g' -e '1,$ p' test1.txt
sed -n '/test/w file' example #将包含test的行写入文件file

相关文章

  • linux sed 替换

    1. linux sed -i 命令 Linux sed 命令是利用脚本来处理文本文件。 sed 可依照脚本的指令...

  • Linux 学习笔记(十四):Linux 正则表达式基础

    grep 命令 作为linux中最为常用的三大文本(awk(Linux awk教程),sed(Linux sed教...

  • LINUX sed命令的使用

    LINUX sed命令的使用 命令格式 sed常用命令 sed替换标记 sed元字符集 已匹配字符串标记& ⼦串匹...

  • Linux命令之sed批量替换字符串操作

    Linux中sed命令功能强大,本文将详细介绍如何使用sed命令进行字符串替换。一、基本的替换命令格式1:sed ...

  • Linux系列开坑记(三)-流处理器sed

    今天我们聊一聊Linux 下sed 命令,sed是linux非常强大的命令,可以对数据进行替换,删除,新增等操作。...

  • Linux 命令之 sed

    sed 的全称是 stream editor,是支持正则表达式的流编辑器。其作用便是将文本文件或来自于管道符传入的...

  • Linux命令之sed

    以行为单位的新增/删除 将 /etc/passwd 的内容列出并且列印行号,同时,请将第 2~5 行删除! 在第一...

  • linux命令之sed

    简介 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,sed编辑器逐行处...

  • Linux命令之sed

    sed是一种流编辑器,他是文本处理中的工具,能够完美配合正则表达式使用。处理时,把当前处理的行存储在临时缓存区中,...

  • Linux命令之Sed

    以行为单位的新增/删除 删除 新增 a->目标行后面添加,i ->目标行前面添加 以行为单位的替换与显示 c p ...

网友评论

      本文标题:Linux命令之sed

      本文链接:https://www.haomeiwen.com/subject/zshzqctx.html