Linux Sed正则表达式

本文概述

  • 流编辑器
  • 互动编辑
  • 简单反向引用
  • 任何字符的点
  • 多向引用
  • 空白空间
  • 可选发生
  • 确切的n次出现
  • 发生范围
流编辑器 sed命令用于流编辑。
例:
echo interactive | sed 's/inte/dist/' echo interactive | sed 's:inte:dist:' echo interactive | sed 's_inte_dist_' echo interactive | sed 's|inte|dist|'

Linux Sed正则表达式

文章图片
查看上面的快照, 使用sed命令将字符串” interactive” 更改为” distractive” 。尽管使用正斜杠(/), 冒号(:), 下划线(_)和竖线(|)也可以使用。
互动编辑 sed命令旨在作为流编辑器, 同时还可以用作文件上的交互式编辑器。对于交互式编辑器, 使用选项” i” 。
例:
sed -i 's/today/tomorrow/' file

Linux Sed正则表达式

文章图片
看上面的快照, 流” 今天” 在” 文件” 中转换为” 明天” 。
简单反向引用 双” &” 号用于搜索和查找指定的字符串。它将使用sed命令打印找到的字符串。
例:
echo fourty | sed 's/four/& & /'

Linux Sed正则表达式

文章图片
看上面的快照, “ &” 号已搜索字符串” four” 并将其打印为” fourfourty” 。
任何字符的点 在正则表达式中, 一个简单的点可以表示任何字符。, / p>
【Linux Sed正则表达式】例:
echo xxxx-xx-xx | sed 's/....-..-../YYYY-MM-DD/'

Linux Sed正则表达式

文章图片
查看上面的快照, 点被日期格式替换。
多向引用 如果使用不止一对括号, 则称为分组。在此, 它们每个都可以分别称为三个连续的数字。
例:
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\1:\2:\3/' echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\1_\2_\3/' echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\2:\3:\1/' echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\3:\2:\1/'

Linux Sed正则表达式

文章图片
看上面的快照, 日期以不同的格式打印。在此, 将2014标记为(1), 将06标记为(2), 将30标记为(3)。
空白空间 空格语法为” \ s” , 制表符空间语法为” \ t” 。
例:
echo -e 'this\tis\tsrcmini' | sed 's/\s/ /g'

Linux Sed正则表达式

文章图片
看上面的快照, ” \ s” 用于单个空格。
可选发生 你可以通过使用(?)问号来指定可选内容。
例:
cat list2 | sed 's/iii\?/Y/'

Linux Sed正则表达式

文章图片
看上面的快照, 我们将第三个” i” 作为可选项。需要指出的是, 必须将两个” i” 转换为” Y” 。
确切的n次出现 确切的发生时间由” {times}” 指定。
例:
cat list2 | sed 's/i\{3\}/Y/'

Linux Sed正则表达式

文章图片
看上面的快照, 我们已经精确地指定了” i” 出现的三倍。
发生范围 我们还可以根据范围来指定发生次数。例如, 如果将范围指定为{m, n}, 则’ m’ 表示最小发生次数, ‘ n’ 表示最大发生次数。
例:
cat list2 | sed 's/i\{3, 4\}/Y/'

Linux Sed正则表达式

文章图片
看上面的快照, 我们将最小范围指定为3, 最大范围指定为4。

    推荐阅读