Awk
раствор:
awk '/# Begin TRACE A Data/{ f = 1; next }
/# Done Data \$capture/{ f = 0 }
NF && f{ gsub(/^P.+=|,| MHz/, ""); print }' file
Выход:
-103.976000 2884.982910
-103.580000 2884.997456
-103.748000 2885.012001
-104.020000 2885.026547
-103.472000 2885.041092
-103.720000 2885.055638
-103.752000 2885.070183
-103.512000 2885.084729
-103.664000 2885.099274
-103.948000 2885.113820
-103.720000 2885.128365
-103.480000 2885.142911
<<-EOF
будет игнорировать начальные табуляции в вашем документе, а <<EOF
— нет. Таким образом:
cat <<EOF
Line 1
Line 2
EOF
будет производить
Line 1
Line 2
, а
cat <<-EOF
Line 1
Line 2
EOF
производит
Line 1
Line 2
Если вы используете <<-EOF
, я рекомендую справочную страницу Bourne Shell:
Если, однако, дефис (-)добавляется к <<:
начальные табуляции удаляются из слова перед чтением ввода оболочки (, но после выполнения подстановки параметров и команд в слове );
начальные табуляции удаляются из ввода оболочки по мере его чтения и перед сравнением каждой строки со словом; и
Ввод оболочки считывается до первой строки, которая буквально соответствует результирующему слову, или до EOF.
Таким образом, <<-
позволяет сделать отступ содержимого документа здесь для лучшей читабельности.