Sed 常用基本命令

Posted Erik_ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sed 常用基本命令相关的知识,希望对你有一定的参考价值。

文章目录


本文主要介绍了 Sed 常用的基本命令。

Linux sed 命令主要用来处理、编辑文本文件。

sed -i 命令可直接修改文件

替换

  • 替换某个字符串
sed -i "s/旧字符串/新字符串/g" 文件名

例如:要将 test.txt 文件中的 AAA 全部替换为 BBB,即:

sed -i "s/BBB/AAA/g" test.txt 

带 g —— 全部替代
无 g —— 只替代每行第一个

  • 只替换第 N 行的某些字符
 sed -i "Ns/旧字符串/新字符串/g" 文件名 

例如:将 test.txt 第 3 行的 bb 换为 BB,即:

sed -i "3s/bb/BB/g" test.txt 
  • 替换两个字符之间的内容

可以使用正则表达是 .* 代替两个字符串之间的任意内容

sed -i "s/开始字符串.*结束字符串/开始字符串修改后的字符串结束字符串/g" 文件名

例如:要将 test.txt 文件中 > 和 = 之间的内容都替换为 CCC,即:

sed -i "s/>.*=/>CCC=/g" test.txt

新增

  • 在第 N 行之后插入一行
sed -i "Na\\新增内容" 文件名

例如:在 test.txt 文件的第 2 行之后增加一行 ddd,即:

sed -i "2a\\dddd" test.txt
  • 在最后一行之后插入一行
sed -i '$a 新增内容' 文件名

$ 代表最后一行,注意要使用单引号

例如:在 test.txt 的末尾插入一行 DDD,即

sed -i '$a DDD' test.txt

插入

  • 在文件第 N 行插入
sed -i "Ni\\插入内容" 文件名

例如:在 test.txt 文件的第 2 行 插入 AAA,即:

sed -i "2i\\AAA" test.txt
  • 在文件第一行插入内容
sed -i "1i\\插入内容" 文件名

例如:在 test.txt 中的第一行插入 BBB,即:

sed -i "1i\\BBB" test.txt

删除

  • 删除第 N 行内容
sed -i 'Nd' 文件名

例如:删除 test.txt 文件的第 2 行,即

sed -i '2d' test.txt
  • 删除从的 M 行到第 N 行的内容
sed -i 'M,Nd' 文件名

例如:删除 test.txt 文件的从第 2 行,到第 5 行,即:

sed -i '2,5d' test.txt

参考资料

  • Linux sed 命令 | 菜鸟教程 https://www.runoob.com/linux/linux-comm-sed.html

  • 使用sed -i对文本字符串进行增删改查 - 纯捡垃圾吃的 - 博客园 https://www.cnblogs.com/zhangrui153169/p/11506334.html

注:本文首发于个人博客网站: http://www.erik-ly.com/

以上是关于Sed 常用基本命令的主要内容,如果未能解决你的问题,请参考以下文章

sed 取特定行 到末尾行

Linux常用基本命令:三剑客命令之-sed

sed的基本用法

Linux Shell常用技巧 sed

Linux三剑客之sed的基本用法介绍

_sed命令