使用 awk 的 solaris 文件中的 Grep 单词



我在Oracle Solaris 10上,并尝试使用awk和cut命令的组合从xml文件中grep一个单词。我在xml文件中有下面提到的字符串。

<Resource driverClassName="oracle.jdbc.OracleDriver"  name="jdbc/LiferayPool" type="javax.sql.DataSource" username="PROD_LIFERAY" password="" url="jdbc:oracle:thin:@server02:1521:PROD0100 " maxActive="20" maxIdle="10" minIdle="3" maxWait="10000" initialSize="3" validationInterval="60000" testOnBorrow="true" validationQuery="select 1 from dual" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"/>

我想从上面示例中当前显示的位置构建 awk 命令来 grep 单词PROD0100。如果有人能帮助我弄清楚,我很感激。

像往常一样,在Unix上有很多方法可以解决它。

Awk 将模式与操作相匹配,因此您将需要类似的东西

/PROD0100/ {
    # your actions here on the matching line
}

默认情况下,awk 将每行拆分为由空格分隔的字段。

所以如果你使用类似的东西

gawk '/PROD0100/{ for (i=1;i<=NF;i=i+1) { if (match($i, ".*PROD0100.*") != 0) { print "matching word "$i } } }' test

(其中test是要读取的包含字符串的文件(那么你应该得到

matching word url="jdbc:oracle:thin:@server02:1521:PROD0100

但是,对于您提供的输入,您可能会遇到一些问题,因为在找到的单词的右双引号之前有一个空格

最新更新