📅  最后修改于: 2020-12-08 05:09:00             🧑  作者: Mango
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|'
查看上面的快照,使用sed命令将字符串“ interactive”更改为“ distractive”。尽管正斜杠(/) ,冒号(:) ,下划线(_)和竖线(|)也可以使用。
sed命令旨在作为流编辑器,同时还可以用作文件上的交互式编辑器。对于交互式编辑器,使用选项“ i”。
例:
sed -i 's/today/tomorrow/' file
看上面的快照,流“今天”在“文件”中转换为“明天”。
双连字符用于搜索和查找指定的字符串。它将使用sed命令print找到的字符串。
例:
echo fourty | sed 's/four/&&/'
看上面的快照,“&”号已搜索字符串“ four”并将其打印为“ fourfourty”。
在正则表达式中,一个简单的点可以表示任何字符。
例:
echo xxxx-xx-xx | sed 's/....-..-../YYYY-MM-DD/'
查看上面的快照,点被日期格式替换。
如果使用不止一对括号,则称为分组。在这里,它们每个都可以分别称为三个连续的数字。
例:
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/'
看上面的快照,日期以不同的格式打印。此处,将2014标记为(1),将06标记为(2),将30标记为(3)。
空格语法为“ \ s”,制表符空间语法为“ \ t”。
例:
echo -e 'this\tis\tjavatpoint' | sed 's/\s/ /g'
查看上面的快照,“ \ s”用于单个空格。
您可以通过使用(?)问号来指定可选内容。
例:
cat list2 | sed 's/iii\?/Y/'
查看上面的快照,我们将第三个“ i”作为可选项。必须指出,必须将两个“ i”转换为“ Y”。
确切的时间发生由“ {times}”指定。
例:
cat list2 | sed 's/i\{3\}/Y/'
看上面的快照,我们已经精确地指定了“ i”出现的三倍。
我们还可以根据范围来指定发生次数。例如,如果将范围指定为{m,n},则'm'表示最小发生次数,'n'表示最大发生次数。
例:
cat list2 | sed 's/i\{3,4\}/Y/'
查看上面的快照,我们将最小范围指定为3,最大范围指定为4。