我可以从当前行创建awk变量吗?

时间:2019-10-31 21:36:04

标签: variables awk

我有两行:

Pid: 2
PPid: 1

我需要打印如下内容:

PID_Process=2:PPID_Process=1

我有这个,但效果不佳:

awk -v PID='NR==1{$2}' 
    -v PPID='NR==2{$2}'
    '{print "PID="PID, "PPID="PPID}'

3 个答案:

答案 0 :(得分:1)

-v在awk开始之前创建变量。要在运行时分配它们,您需要这样的东西:

awk 'NR==1 {PID=$2}
     NR==2 {PPID=$2}
     END {print "PID="PID, "PPID="PPID}'

或更简单:

awk 'NR==1 {PID=$2}
     NR==2 {PPID=$2; print "PID="PID, "PPID="PPID; exit}'

答案 1 :(得分:1)

$ awk -F': *' '
    { printf "%s%s_Process=%s", sep, toupper($1), $2; sep=":" }
    END { print "" }
' file
PID_Process=2:PPID_Process=1

答案 2 :(得分:0)

其他一些变化

awk 'NR==1 {f=$2;next} {print "PID_Process="f":PPID_Process="$2}' file
PID_Process=2:PPID_Process=1