sed 替换文件中的字符串

sed 替换文件中的字符串

  • sed 替换文件内容
abcABC|abcABC
abcABC|abcABC
abcABC|abcABC
  • sed替换 将文件中每行第一次出现的a用字符串A替换,修改后内容会到标准输出,不会修改原文件

$ sed -e 's/a/A/' sed替换.txt

AbcABC|abcABC
AbcABC|abcABC
AbcABC|abcABC
  • g参数 sed 对文件中所有符合的字符串都被替换,修改后内容会到标准输出,不会修改原文件
$ sed -e 's/a/A/g' sed替换.txt

AbcABC|AbcABC
AbcABC|AbcABC
AbcABC|AbcABC
  • 选项 i sed 修改文件,注意:选项 i 指令会修改原文件!!!
$ sed -i 's/a/A/g' sed替换.txt
$ cat sed替换.txt

AbcABC|AbcABC
AbcABC|AbcABC
AbcABC|AbcABC
  • 批量操作当前目录下以 .txt 结尾的文件
$ sed -i 's/b/B/g' ./*.txt
$ cat sed替换.txt

ABcABC|ABcABC
ABcABC|ABcABC
ABcABC|ABcABC
  • 递归修改文件
$ sed -i 's/A/a/g' `grep A -rl --include="*.txt" ./`

说明:grep 命令中:
    选项`r`表示查找所有子目录
    `l`表示仅列出符合条件的文件名,
    用来传给sed命令做操作,
    `--include="*.txt"` 表示仅查找 .txt 结尾的文件

  • 选项 -i.bak sed 修改文件会备份文件
$ sed -i.bak 's/c/C/g' *.txt
$ cat sed替换.txt

ABCABC|ABCABC
ABCABC|ABCABC
ABCABC|ABCABC

--备份的文件
sed替换.txt.bak

--如果不需要备份文件,使用空字符串来取消备份,或者留空
$ sed -i '' 's/c/C/g' ./*.txt

  • 递归修改文件并且备份文件
$ sed -i.bak 's/a/A/g' `grep a -rl --include="*.txt" ./`

说明:grep 命令中:
    选项`r`表示查找所有子目录
    `l`表示仅列出符合条件的文件名,
    用来传给sed命令做操作,
    `--include="*.txt"` 表示仅查找 .txt 结尾的文件

  • 选项说明:
  • 选项i的用途是直接在文件中进行替换
  • 选项i.bak备份文件

参数说明:
g 全局替换,否则只替换文件中每行第一次出现的
e 表示多点编辑,可以执行多条命令

动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

  • 参数用法示例:
--a :新增,在"sed替换"文件的第1行后添加一行,并将结果输出到标准输出
$ sed -i 1a\newline sed替换.txt

result:
ABCABC|ABCABC
newline
ABCABC|ABCABC
ABCABC|ABCABC

--d :删除,将 sed替换.txt 的内容列出,同时将第 2 行删除!

$ sed -i '2d' sed替换.txt
ABCABC|ABCABC
ABCABC|ABCABC
ABCABC|ABCABC


--i :插入, 结合$a 新增,利用 sed 直接在 sed替换.txt 最后一行加入 # This is a test:
$ sed -i '$a #This is a test' sed替换.txt

ABCABC|ABCABC
ABCABC|ABCABC
ABCABC|ABCABC
#This is a test

  • sed 高级用法:https://www.cnblogs.com/tureno/articles/6677942.html
  • sed菜鸟教程:https://www.runoob.com/linux/linux-comm-sed.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值