Linux shell 里面 sed的命令能够记住之前的子样式,这样被称为反向引用。
反向引用就是把正则表达式匹配出来的组引用到表达式本身的其他地方。
这里介绍一下sed的反向引用。
sed -n ‘/(.)(.)21/p’ filename
这里出现的. 点号,是sed用来匹配单个字符的正则表达式。
如果要匹配一个字符,并且进行反向引用。就可以使用(.)匹配单个字符,再用1引用它,于是变成了:
sed ‘/(.)1/p’ filename
sed里面可以用字串匹配标记1 去匹配。(pattern)用来匹配字串。模式被包括在使用斜线转义过的小括号()中。
sed -n ‘/^(.)(.)21/p’ filename
这里用了2个(.)匹配并且记录前两个字符,sed会记住所有位于(和)中的匹配内容,并且反向引用它们。21用来对所匹配的字符以相反的顺序进行反向引用。
/p一般是用来打印样式。为了指明必须从行首开始匹配,我们加入了行首标记^。
鼓励的话语:须知少年凌云志,曾许人间第一流!