1-е решение: Не могли бы вы попробовать, протестировать и написать с предоставленными образцами.
awk '
FNR>2 && /^[^ ]/{
if($(NF-1)~/[0-9]/){
print $1,$(NF-2),$(NF-1)
}
else{
print $1,$(NF-1)
}
}
' Input_file
Я также считал, что ваше последнее поле НЕ с пробелами.
2-е решение: Учитывая, что в вашем последнем поле могут быть пробелы, в этом случае можно попробовать следующие.
awk '
FNR>2 && /^[^ ]/{
match($0,/ +[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+.*/)
val=split(substr($0,1,RSTART-1),array," ")
if(array[val]~/[0-9]/){
print $1,array[val-1],array[val]
}
else{
print $1,array[val]
}
}
' Input_file
В обоих моих решениях я считал, что exit
будет иметь цифру в статусе, что я считаю справедливым соображением.