IHS 및 Java 버전을 가져오기 위해 grep을 사용할 수 없습니다.

IHS 및 Java 버전을 가져오기 위해 grep을 사용할 수 없습니다.

스크립트를 실행하여 IHS 및 JAVA 버전을 얻습니다.

/ihs_home/HTTPServer/bin/versionInfo.sh

IBM HTTP Server 제품의 다양한 버전에 대해 다양한 출력을 인쇄합니다.

출력의 발췌 예는 다음과 같습니다.

.....
Installed Product
--------------------------------------------------------------------------------
Name            IBM SDK, Java Technology Edition, Version 8
Version         8.0.3.0
ID              JAVA8
Build Level     pxa6480sr3ifix-20160615_01
Build Date      06/15/16
Architecture    x86-64 (64 bit)

Installed Product
--------------------------------------------------------------------------------
Name                  IBM HTTP Server for WebSphere Application Server
Version               9.0.5.3
ID                    IHS
Build Level           f5032008.04
Build Date            2/26/20
Package               com.ibm.websphere.IHS.v90_9.0.5003.20200226_0941
Architecture          x86-64 (64 bit)
Installed Features    Core runtime

--------------------------------------------------------------------------------
.....

위 출력에서는 JDK 버전이 WEBSPHERE(IHS) 버전 앞에 표시됩니다.

불행하게도 이 IBM 제품의 버전에 따라 출력이 다를 수 있으며 WEBSPHERE(IHS) 버전 이후에 JDK 버전이 표시될 수 있습니다.

그러므로,

/ihs_home/HTTPServer/bin/versionInfo.sh | grep -v Directory | grep -v reporter |  grep -i version
Output:
Version     8.0.3.0
Version     9.0.5.3

그러나 첫 번째 버전이 WEBSPHERE(IHS)인지 JDK인지는 확실하지 않습니다.

아래 버전 항목 이 포함된 버전 이전 행이 websphere(ihs)인지 확인해야 하며 WebSphere, 그렇지 않으면 JDK 버전입니다.

--------------------------------------------------------------------------------
Name                  IBM HTTP Server for WebSphere Application Server
Version               9.0.5.3

스크립트를 사용하여 Websphere 및 JDK 버전을 확인하는 방법 versionInfo.sh.

누구든지 조언을 해줄 수 있나요?

답변1

귀하의 질문이 명확하지 않지만 입력에 레이블/이름-값 쌍이 있을 때마다 먼저 이러한 쌍의 배열을 생성하는 것이 가장 좋습니다( tag2val[]아래). 그런 다음 원하는 것을 테스트 및/또는 인쇄할 수 있습니다. 좋아하지만 원하는 순서대로 좋아합니다. 예를 들면 다음과 같습니다.

$ cat file | awk -v OFS='\t' '
    { tag=val=$0; sub(/[[:space:]].*/,"",tag); sub(/[^[:space:]]*[[:space:]]+/,"",val); tag2val[tag]=val }
    tag == "Version" { print val, tag2val["Name"] }
' file
8.0.3.0 IBM SDK, Java Technology Edition, Version 8
9.0.5.3 IBM HTTP Server for WebSphere Application Server

.

$ cat file | awk -v OFS='\t' '
    { tag=val=$0; sub(/[[:space:]].*/,"",tag); sub(/[^[:space:]]*[[:space:]]+/,"",val); tag2val[tag]=val }
    tag == "Version" { print val, (tag2val["Name"] ~ /WebSphere/ ? "WebSphere" : "JDK") }
' file
8.0.3.0 JDK
9.0.5.3 WebSphere

위의 코드는 cat file질문에 제공한 내용을 입력으로 사용하는 대신 내 시스템에 없는 것을 사용하여 실행됩니다./ihs_home/HTTPServer/bin/versionInfo.sh

$ cat file
.....
Installed Product
--------------------------------------------------------------------------------
Name            IBM SDK, Java Technology Edition, Version 8
Version         8.0.3.0
ID              JAVA8
Build Level     pxa6480sr3ifix-20160615_01
Build Date      06/15/16
Architecture    x86-64 (64 bit)

Installed Product
--------------------------------------------------------------------------------
Name                  IBM HTTP Server for WebSphere Application Server
Version               9.0.5.3
ID                    IHS
Build Level           f5032008.04
Build Date            2/26/20
Package               com.ibm.websphere.IHS.v90_9.0.5003.20200226_0941
Architecture          x86-64 (64 bit)
Installed Features    Core runtime

--------------------------------------------------------------------------------
.....

관련 정보