Linux之Shell编程(15)--sed关键字详解演示
Posted 菠萝印象威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之Shell编程(15)--sed关键字详解演示相关的知识,希望对你有一定的参考价值。
前面已经演示了sed -n以及sed -e的基本用法
回顾上一篇的sed用法: sed
今天继续讲解其他的一些sed用法
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出动作。简而言之,就是直接修改源文件,一般用于修改配置文件中的参数。
实例演示:
1.替换文件中的内容
sed -i ‘s/原字符串/新字符串/’ file
先来看一下第一个例子
逐步解析:
sed -i表示需要对源文件进行修改
s 表示替换脚本命令
/Will 表示源文件中的字符串
/Jam 表示需要替换的字符串
file.txt 表示目标文件
运行结果:
可以看到:直接修改了源文件内容。
再看第二个例子
在原来的基础上多了g,表示替换所有需要替换的内容。
运行结果:
如果不加g
结果:
发现只会修改第一个字符
2.删除特定字符串
sed -i ‘/字符串/d’ file
源文件内容:
分别单独执行其中一条
第一条结果:
第二条结果:
第三条结果:
第四条结果:
发现其中三条都会删除,但是超出相同字符串时,就无法删除。
3.特定字符串的行前插入新行字符
sed -i ‘/特定字符串/i 新行字符串’ file
和上面类似的是,未超出特定字符串时可以在指定字符前加入新的一行字符。
结果:
4.特定字符串的行后插入新行字符
sed -i ‘/特定字符串/a 新行字符串’ file
结果:
5.去掉行首带特定字符的特定字符
sed -i ‘s/^特定字符//’ file
结果:
去掉之前:
去掉之后:
6.替换某行第几次出现的某字符串
源文件中的内容如下:
需求:替换第三行的第二个2为x
结果:
注意:这里不加i会直接输出结果到屏幕,不会改变源文件内容。
以上是关于Linux之Shell编程(15)--sed关键字详解演示的主要内容,如果未能解决你的问题,请参考以下文章