У меня есть две строки:
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}'
$ awk -F': *' ' { printf "%s%s_Process=%s", sep, toupper($1), $2; sep=":" } END { print "" } ' file PID_Process=2:PPID_Process=1
-v создает переменные до начала awk. Чтобы назначить их во время работы, вы хотите что-то вроде этого:
-v
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}'
Некоторые другие варианты
awk 'NR==1 {f=$2;next} {print "PID_Process="f":PPID_Process="$2}' file PID_Process=2:PPID_Process=1