Linux三剑客(sed)

文章目录

  • 前言
  • 语法
  • 参数说明
  • 动作说明
  • 示例
    • 1、第二行后新增语句:第1句中文
    • 2、删除第3-4行
    • 3、总结上面的两种实现方式的异同点。
    • 4、全局替换
    • 5、替换第2-4行
    • 6、打印指定条件的文件名
    • 7、删除指定条件的文件名
    • 8、直接操作文件内容

前言

  本文参考自菜鸟教程。

  Linux sed 命令是利用脚本来处理文本文件。

  sed 可依照脚本的指令来处理、编辑文本文件。

  Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

-e< script>或–expression=< script> 以选项中指定的script来处理输入的文本文件。

-f或–file= 以选项中指定的script文件来处理输入的文本文件。

-h或–help 显示帮助。

-V或–version 显示版本信息。

=:打印匹配行的行号

-n 取消默认的完整输出,只要需要的

-i 修改文件内容

-r 不需要转义

动作说明

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c 的后面可以接字串,这些字串可以取代n1,n2 之间的行!

d :删除,因为是删除啊,所以 d 后面通常不接任何东西;

i :插入, i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n
一起运行~

s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

示例

  前7条示例都相当于查看,并不会对系统或文件进行任何修改。第八条将会修改实际文件。

下面示例全部操作test.txt文件,初始文件如图:
Linux三剑客(sed)_第1张图片

1、第二行后新增语句:第1句中文

sed -e 2a\第1句中文 test.txt

Linux三剑客(sed)_第2张图片

cat test.txt | sed '2a\第一句中文'

Linux三剑客(sed)_第3张图片

2、删除第3-4行

cat test.txt | sed '3,4d'

在这里插入图片描述

sed -e '3,4d' test.txt

在这里插入图片描述

3、总结上面的两种实现方式的异同点。

sed -e 2a\第1句中文 test.txt   --》   cat test.txt | sed '2a\第一句中文'

cat test.txt | sed '3,4d'     --》   sed -e '3,4d' test.txt

如果sed放在后面,可以不加-e,下面示例就只实现其中一种方式了。

4、全局替换

ls | sed 's/root/luo/g'

Linux三剑客(sed)_第4张图片

5、替换第2-4行

cat test.txt | sed '2,4c 我是第二行'

Linux三剑客(sed)_第5张图片

6、打印指定条件的文件名

ls | sed -n '/root/p'

Linux三剑客(sed)_第6张图片

7、删除指定条件的文件名

ls | sed '/root/d'

Linux三剑客(sed)_第7张图片

8、直接操作文件内容

sed -i '4d' test.txt

Linux三剑客(sed)_第8张图片

你可能感兴趣的:(Linux)