Linux中使用sed命令替换字符串小结

sed替换的基本语法为:

sed ‘s/原字符串/替换字符串/‘

单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义,但是单引号”‘”是没有办法用反斜线”\”转义的,这时候只要把命令中的单引号改为双引号就行了,例如:

sed "s/原字符串包含‘/替换字符串包含‘/" //要处理的字符包含单引号

命令中的三根斜线分隔符可以换成别的符号,这在要替换的内容有较多斜线是较为方便,只需要紧跟s定义即可,例如换成问号”?”:

sed ‘s?原字符串?替换字符串?‘ //自定义分隔符为问号

可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:

sed ‘s/原字符串/替换字符串/‘ //替换所有匹配关键字

上箭头”^”表示行首,美元”$”符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行),这里犯二了,搜了半天哪个符号表示首行,半天才想起来,首行就是数字”1″啊.那么在行首和行尾添加字符串就是把行尾和行首替换,例如:

sed ‘s/^/添加的头部&/g‘ //在所有行首添加
sed ‘s/$/&添加的尾部/g‘ //在所有行末添加
sed ‘2s/原字符串/替换字符串/g‘ //替换第2行
sed ‘$s/原字符串/替换字符串/g‘ //替换最后一行
sed ‘2,5s/原字符串/替换字符串/g‘ //替换2到5行
sed ‘2,$s/原字符串/替换字符串/g‘ //替换2到最后一行

替换样式可以多个在同一条命令中执行,用分号”;”分隔,例如:

sed ‘s/^/添加的头部&/g;s/$/&添加的尾部/g‘ //同时执行两个替换规则

sed处理过的输出是直接输出到屏幕上的,要保存可以将输出重定向,或者使用参数”i”直接在文件中替换:

sed -i ‘s/原字符串/替换字符串/g‘ filename //替换文件中的所有匹配项

时间: 2024-10-10 23:49:51

Linux中使用sed命令替换字符串小结的相关文章

Linux中的sed命令

sed - stream editor for filtering and transforming text 流编辑器的过滤和转换文本 sed [-nerf] [动作] 参数: -i 修改源文件 危险 -e 直接在命令行模式上执行sed的动作编辑 -f 直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作 -r :使用扩展的正则表达式 -n 静默模式,默认的sed中所有来自stdin的数据一般都会被列出到屏幕上,但如果加上-n之后,则只有经过sed

在shell中使用sed命令替换/为\/

sed命令相关: https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html https://www.cnblogs.com/DragonFire/p/6600121.html 这里我们要做的功能是: 输入一个目录"/data/data8" 在shell中将其变换为"\/data\/data8" (这是为了能在shell后边的sed命令中直接使用) 先来看看直接使用命令如何实现: echo &q

Linux中的sed详解

Sed简介 Sed取各种内容 Stream Editor  流式编辑器 又称行编辑器每次只编辑一行.Sed工作是在"模式空间"中进行的并不操作源文件.对源文件无危害. Sed使用格式 sed [-nefri] 'command' 输入文本 sed使用参数 -n 使用安静(silent)模式.在一般 sed 的用法中所有来自 STDIN 的数据一般都会被列出到终端上.但如果加上 -n 参数后则只有经过sed 特殊处理的那一行(或者动作)才会被列出来. -e 直接在命令列模式上进行 sed

Linux Shell编程 sed命令

概述 sed命令用来选取.替换.删除.新増数据 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器.sed 有许多很好的特性.首先,它相当小巧,通常要比你所喜爱的脚本语言小多倍.其次,因为 sed 是一种流编辑器,所以,它可以对从如管道这样的标准输入中接收的数据进行编辑.因此,无须将要编辑的数据存储在磁盘上的文件中.因为可以轻易将数据管道输出到 sed,所以,将 sed 用作强大的 Shell 脚本中长而复杂的管道很容易.sed 主要是用来将数据进行选取.替换

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器

CentOS系统中的passwd命令实用技巧小结

这篇文章主要介绍了Linux系统中的passwd命令实用技巧小结,是Linux入门学习中的基础知识,需要的朋友可以参考下 先来回顾一下passwd命令的基本用法: Linux passwd命令用来更改使用者的密码语法passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]必要参数:-d 删除密码-f 强制执行-k 更新只能发送在过期之后-l 停止账号使用-S 显示密码信息-u 启用已被停止的账户-x 设置密码的有效期-g 修改群组密码-i 过期后停止用户账号

[Z] sed命令替换换行符

sed命令替换换行符 sed流编辑器是shell中处理文本内容的一大利器.sed命令从文本流中读取一行文本到模式空间中进行相应的命令.或脚本处理,因此在处理换行符时会有点特殊. 下面的命令可以很正确的执行: echo "a,b,c,d" |sed 's/,/\n/g' 但是如果我想恢复回来,下面的命令却没有效果了: echo "a,b,c,d" |sed 's/,/\n/g'|sed 's/\n/,/g' 这跟sed的行处理方式有关,sed读取一行时,会先把换行符去

Linux中的历史命令

Linux中的历史命令一般保存在用户????/root/.bash_history history 选项 历史命令保存文件夹 选项 ????-c:清空历史命令 ????-w :把缓存中的历史命令写入历史命令保存文件/root/.bash_history 在.bash_history中看到的命令和用history命令看到的内容并不完全一样.在.bash_history文件中看到的是上次登录注销以后保存的命令,而histroy看到的包括这次登录执行的命令 1.将缓存中的命令写入历史命令保存文件 [[

linux中的压缩命令详细解析(二)

我们在<Linux中的压缩命令详细解析(一)>中已经讲解了常见的三种压缩命令,下面我们开始讲解工作中最常用到的tar命令. 为了使压缩和解压缩变得简单,tar命令就应运而生了.那么究竟该如何使用呢? tar.gz格式: 压缩命令: tar -zcvf 压缩文件名 源文件名 举例: 把abc文件压缩成后缀为tar.gz格式的文件 tar -zcvf abc.tar.gz abc 解压缩命令: 举例:解压缩abc.tar.gz文件 tar -zxvf abc.tar.gz tar.bz2格式: 压