Linux三剑客(sed)

Love The Way You Lie 2023-06-24 09:29 163阅读 0赞

文章目录

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

前言

  本文参考自菜鸟教程。

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

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

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

语法

  1. 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文件,初始文件如图:
在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

2、删除第3-4行

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

4、全局替换

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

在这里插入图片描述

5、替换第2-4行

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

在这里插入图片描述

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

  1. ls | sed -n '/root/p'

在这里插入图片描述

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

  1. ls | sed '/root/d'

在这里插入图片描述

8、直接操作文件内容

  1. sed -i '4d' test.txt

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,163人围观)

还没有评论,来说两句吧...

相关阅读