首页 > 代码库 > vi应用:使用v和s命令两步提取出想要的内容

vi应用:使用v和s命令两步提取出想要的内容

本文以提出spring中配置文件applicationContext.xml中所有bean的id为例,讲解如何使用vi的v和s命令两步提取出想要的内容。

applicationContext.xml文件内容如下:

<?xml version = "1.0" encoding = "UTF-8" ?>

<beans xmlns ="http://www.springframework.org/schema/beans"

xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context ="http://www.springframework.org/schema/context"

xsi:schemaLocation ="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.5.xsd" >

<bean id="bookService" class = "BookServiceImpl">

<property name ="appProfile" ref= "myProfile">

</property>

</bean>

<bean id="libService" class = "LibServiceImpl">

<property name ="triggers" >

<list>

< ref local ="bookService" />

</list>

</property>

<property name="threadCountProperties" >

<props>

< prop key ="threadCount" > 1</ prop >

</props>

</property>

</bean>

</beans>

目标是将bean id(bookService和libService)提取出来。步骤如下:

1)使用v命令把不包含<bean\ 的行给删掉

:v/<bean\ /d

applicationContext.xml内容变成如下:

       <bean id="bookService" class = "BookServiceImpl">
       <bean id="libService" class = "LibServiceImpl">

2)通过s命令使用正则表达式把每一行替换成我们想提出的内容

:%s/.\{-\}id="\(.\{-\}\)".*$/\1

applicationContext.xml内容变成如下:

bookService
libService

至此,两个bean id(bookService和libService)被成功提取出来。

该方法会修改原来文本内容,为了不影响原来的文本,请copy一份专门用来提取信息。另外这个只是个人用的比较顺手的方法,如果大家有更好的方法可以一起讨论一下。

vi应用:使用v和s命令两步提取出想要的内容