---指定文件替换,将文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;
---批量文件替换,递归查找含CANCEL_TIME的文件,将所有文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;
---在所有行首添加字符串;
---在所有行末添加字符串
---替换最后一行
-i选项是直接在文件中替换,不在终端输出;
-r选项是所给的path中的目录递归查找;
-l选项是输出所有匹配到oldstring的文件;
s/表示替换
/g表示全局替换
sed命令行格式:sed [options] 'command' file(s)
options常用选项:
-n或--quiet或——silent:仅显示script处理后的结果;
-e:以选项中的指定的script来处理输入的文本文件;
-f:以选项中指定的script文件来处理输入的文本文件;
-r∶sed 的动作支援的是延伸型正规表示法的语法;
-i∶直接修改读取的档案内容,而不是由萤幕输出;
-h或--help:显示帮助;
-V或--version:显示版本信息.
Command常用命令:
a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);
d:删除,d 后面通常不接任何字符串;
i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);
p:列印,亦即将某个选择的资料印出.通常 p 会与参数 sed -n 一起运作;
s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用.
实例说明:
新增操作:a命令
sed '/^bird/a\test' file将test追加到 以bird开头的行后面
删除操作:d命令
sed '/^$/d' file #删除空白行;
sed '$d' file #删除最后一行;
sed '/^bird/'d file #删除所有开头是bird的行;
插入操作:i命令
替换文本中的字符串:s命令
sed 's/bird/birds/' file #将文本中的bird替换成birds;
sed -i 's/ bird / birds /g' file #将file文件中每一行的第一个bird替换为birds;
Linux sed 命令是利用脚本来处理文本文件.
语法
参数说明:
regular_express.txt 文件内容如下:
利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !
:q:q
利用 sed 直接在 regular_express.txt 最后一行加入 # This is a test:
由於 $ 代表的是最后一行,而 a 的动作是新增,所以呢该文件最后新增 # This is a test!
sed 的 -i 选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!
sed -i 常见用法(直接对文本文件进行操作的)
替换掉每行的第一个字符串
替换掉所有的字符串 sed -i 's/原字符串/新字符串/g' file
特定字符串的行前插入新行
特定字符串的行后插入新行
特定字符串的删除
Linux下批量替换多个文件中的字符串的简单方法.用sed命令可以批量替换多个文件中的字符串.
命令如下:
sed -i "s/原字符串/新字符串/g" grep 原字符串 -rl 所在目录
即可.
解释一下:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
这个命令组合很强大,要注意备份文件.
第一段:基本正则列表与扩展正则
第二段:sed 文本处理工具的用法介绍
第三段:认识sed工具的 n、r、i 选项指令
第四段:认识sed工具的 p、d、s 条件指令
第五段:认识sed工具的 i、a、c 条件指令
第六段:认识sed高级应用 r、w 条件指令
第七段:综合案例
Linux sed
根据推出时间的不同,分为基本正则和扩展正则,扩展正则在基本正则的基础上做了一些优化和新增了一些正则表达符号,因为一些命令没有及时更新,所以你可能会遇到有些命令只支持基本正则,不支持扩展正则,或者需要添加一些支持扩展正则的选项.
关于正则与扩展正则区别的详细介绍可以看我另一篇shell 正则的介绍
基本正则列表
扩展正则列表
第二段:sed 文本处理工具的用法介绍:
相关说明如下:
sed命令的常用选项如下:
sed命令常用条件指令如下
# sed [选项] '条件指令' 文件.. ..
上面的条件指令 我们可以拆分为 # sed [选项] '范围界定+操作指令' 文件.. .. 的格式这样更容易理解
sed命令可以使用行号或正则做为条件匹配:
①.)sed命令的 -n 选项
执行p打印等过滤操作时,希望看到的是符合条件的文本.但不使用任何选项时,默认会将原始文本一并输出,从而干扰过滤效果.比如,尝试用sed输出/etc/hosts的第1行:
需要用到扩展正则时,需要加 -r选项
正常情况下,sed命令所做的处理只是把操作结果(包括打印、删除等)输出到当前终端屏幕,而并不会对原始文件做任何更改:
若希望直接修改文件内容,应添加选项 -i .
需要特别注意的是,和一些指令组合和使用的先后顺序都会对最终输出结果产生影响
例如: 指令 -n、和操作操作p
下文中关于使用sed修改文件的示例中,为了避免大家在练习过程中因误操作导致系统故障,命令省略 –i 选项,不再逐一说明.需要时,大家可自行加上此选项.
用分号来隔离多个操作,比如:
①.)行号案例
①.)下面看看sed工具的p指令案例集锦(自己提前生成一个a.txt文件)
注意:替换操作的分隔"/"可改用其他字符,如#、等,便于修改文件路径
以下操作使用nssw.txt作为测试文件.
参考数据文件内容如下:
使用"()"可实现保留功能,所以可参考下列操作解决:
# sed [选项] '条件指令' 文件..
sed工具的多行文本处理操作:
基本语法格式案例:
①.)sed命令的 i 指定行之前插入基本功能
①.)sed命令的 r 读取文件
①.) 综合案例1
以上就是土嘎嘎小编为大家整理的linux命令替换sed相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!