0%

Sed 常用基本命令

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

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

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

替换

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

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

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

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

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

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

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

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

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

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

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

新增

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

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

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

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

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

1
sed -i '$a DDD' test.txt

插入

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

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

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

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

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

删除

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

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

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

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

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

参考资料