如何将两个 awk 命令组合成一行
How to combine two awk commands into a single line
如何将以下两个 awk 命令合并为一行:
awk -F= '=="ID" { print ;}' /etc/*release && awk -F= '=="VERSION_ID" { print ;}' /etc/*release | xargs
我试图在一行中获取 linux 分发和 os,格式为分发+版本。
例如:ubuntu20.04、rhel7.5
您可以将每个部分捕获到一个变量中,然后在处理完文件后将它们打印出来:
awk -F= '=="ID"{id=}=="VERSION_ID"{vid=}END{print id,vid}' /etc/*release
与bash
:
source /etc/os-release; echo "$ID $VERSION_ID"
我假设您不想要引号(如您的示例所示),在这种情况下:
awk -F '["=]' '=="ID" {printf("%s,",)} =="VERSION_ID" {printf("%s\n",)}' < /etc/*release
如何将以下两个 awk 命令合并为一行:
awk -F= '=="ID" { print ;}' /etc/*release && awk -F= '=="VERSION_ID" { print ;}' /etc/*release | xargs
我试图在一行中获取 linux 分发和 os,格式为分发+版本。 例如:ubuntu20.04、rhel7.5
您可以将每个部分捕获到一个变量中,然后在处理完文件后将它们打印出来:
awk -F= '=="ID"{id=}=="VERSION_ID"{vid=}END{print id,vid}' /etc/*release
与bash
:
source /etc/os-release; echo "$ID $VERSION_ID"
我假设您不想要引号(如您的示例所示),在这种情况下:
awk -F '["=]' '=="ID" {printf("%s,",)} =="VERSION_ID" {printf("%s\n",)}' < /etc/*release