awk 'FNR == 2 {print}'问题



我有一些任务需要知道WLS的安装日期,WLS位于/opt/weblogic1221/wlserver_12.2.1/installation/install/envVars.properties中名为envVars.properties的文件的第二行。我有一个服务器,它有多个版本的WL,因为我在/opt/weblogic*/wlserver*/...中使用*。但当我运行cat /opt/weblogic*/wlserver*/installation/install/*.properties| awk 'FNR == 2 {print}'时我只得到1个结果(对于它找到的第一个文件(。

参见:

[root@server090 ~]# cat /opt/weblogic*/wlserver*/installation/install/*.properties| awk 'FNR==2{print}'
#Mon Feb 02 14:47:02 IST 2015

awk:

[root@server90 ~]# cat /opt/weblogic*/wlserver*/installation/install/*.properties
#Copyright (c) 1999, {0}, Oracle. All rights reserved.
#Mon Feb 02 14:47:02 IST 2015
JAVA_HOME_CCR=/usr/java/jdk1.7.0_72
#Copyright (c) 1999, 2016, Oracle. All rights reserved.
#Mon Feb 06 15:35:50 IST 2017
JAVA_HOME_CCR=/usr/java/jdk1.8.0_102

你可以看到有两个文件:

[root@server90 ~]# ll /opt/weblogic*/wlserver*/installation/install/*.properties
-rwxr-xr-x. 1 oracle dba 121 Feb  2  2015 /opt/weblogic1213/wlserver_12.1.3/installation/install/envVars.properties
-rwxrwxrwx. 1 oracle dba 123 Oct 20  2017 /opt/weblogic1221/wlserver_12.2.1/installation/install/envVars.properties

不要"cat through to awk";,只需指定awk语句之后的文件,因此:

awk 'FNR == 2 {print}' /opt/weblogic*/wlserver*/installation/install/*.properties

使用cat是不必要的,它将把所有输入文件合并到一个输出中,所以awk将只看到一个输入文件(那么FNR只能匹配一次(。

相关内容

最新更新