0

要获取安装在我们的 Solaris 10 服务器上的软件版本列表,我可以使用命令pkginfo -l. 但是,它返回不同行的属性,如下所示:

   PKGINST:  bteq1310
      NAME:  Teradata BTEQ Utility
  CATEGORY:  application
      ARCH:  Solaris9/SPARC
   VERSION:  13.10.00.04
   BASEDIR:  /opt
    VENDOR:  Teradata Corporation
    PSTAMP:  esssol00920110210172759
  INSTDATE:  Jul 01 2012 21:23
    STATUS:  completely installed
     FILES:       10 installed pathnames
                   6 shared pathnames
                   6 directories
                   4 executables
                1403 blocks used (approx)

是否有类似的命令pkginfo将在列中而不是在单独的行中返回相同的信息?我真的只对 PKGINST、NAME、VERSION、INSTDATE 和 STATUS 值感兴趣。

4

1 回答 1

0

这个 awk 脚本似乎可以工作:

BEGIN { FS=":  "; }
/PKGINST/ { pkg = $2; p[$2] = $2; } 
/NAME/ { n[pkg] = $2; } 
/VERSION/ { v[pkg] = $2; } 
/INSTDATE/ { i[pkg] = $2; } 
/STATUS/ { s[pkg] = $2; } 
END { for (m in p) printf ("%s\t%s\t%s\t%s\t%s\n", m, n[m], v[m], i[m], s[m]) }
于 2013-01-01T12:37:31.183 回答