パイプ「|」を含む複数の「awk」文がありますか?

パイプ「|」を含む複数の「awk」文がありますか?
#!/usr/bin/env bash  
#### Extract OS-related info from a Linux box  #### 

#### Display header message ####
# $1 - message

function write_header(){
    local h="$@"
    echo "------------------------------"
    echo "  ${h}"
    echo "------------------------------"
}

#### Get info about Operating System ####

function  os_info(){
    write_header "System Info"
    echo "Operating System : $(uname --kernel-name)" #uname -s 
    echo "Kernel Version   : $(uname --kernel-release)"  #uname -r 
    awk '/^NAME=/||/^VERSION=/' /etc/os-release    
}    

上記のコードでは、次のようunameに特定のフィールドを抽出できます/etc/os-release

System Info
------------------------------
Operating System : Linux
Kernel Version   : 3.16.0-4-amd64
NAME="Debian GNU/Linux"
VERSION="8 (jessie)" 

しかし、私ができないことは、元のステートメントに次awkのパイプを追加することです。最後の2行の出力が次のようになります。と。awk -F'=' '{print $2}awkNAME: Debain GNU/LinuxVERSION: 8 (jessie)

希望の結果を得るためにawkステートメントを結合する方法に関する提案はありますか?

ベストアンサー1

awk -F'[="]+' '/^(NAME|VERSION)=/{printf("%-17s: %s\n",$1,$2)}' /etc/os-release

生産

NAME             : BunsenLabs GNU/Linux
VERSION          : 8.6 (Hydrogen)

おすすめ記事