sed 过滤和替换文本函数

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

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

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

格式:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

sed [选项] '地址 命令' file

选项

  • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。// 可以加多个指令
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -h或--help 显示帮助。
  • -n或--quiet或--silent 仅显示script处理后的结果。// 和动作p一起使用
  • -V或--version 显示版本信息。
  • -i 修改
  • -r 支撑正则

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

随便编写了一个文档做演示 文档内容如下

实例

1. d 删除 删除第一行内容 sed '1d' txt.txt   只是测试显示效果而已 并非真的删除 !!!

2. 使用 -i 参数 实现真实操作  sed -i '1d' txt.txt

 3. d删除 从第几行开始删除 删除到第几行 用,隔开 sed '2,5d' txt.txt  不加 -i参数 都只是测试 !!!

4.  删除匹配到的行  匹配开头为1 的行  sed '/^1/d' txt.txt

 5. 打印指定行 到 第一个指定的行  打印从第五行开始 到 第一个以7开头的行结束 sed -n '5,/^7/p' txt.txt    -n 和 p 一般一起使用 p 是打印的意思

6. p 打印奇数行偶数行

 7. -e 参数 执行多个命令

 8.-r 扩展正则

9.  s替换 g全局替换

10 .s前面写的是行 

11.  提取IP地址把不需要的东西替换为空

原文地址:https://www.cnblogs.com/gaiting/p/12001233.html