Зачем нужно усложнять, используя RS
и cat .. | grep
, когда awk
может просто решить проблему с помощью совпадения регулярных выражений.Просто выполните
awk 'match($0, /.*([0-9]) received, ([0-9%]+)/, arr){ print "received="arr[1]; print "loss="arr[2] }' file.txt
Сохраните его в переменной оболочки, например, на bash
с поддержкой подстановки процесса
read -r received loss < <(awk 'match($0, /.*([0-9]) received, ([0-9%]+)/, arr){ printf "%d %s", arr[1]+0, arr[2] ; }' file)