Не могли бы вы попробовать следующее.Я дал внутреннее регулярное выражение match
443 согласно вашему образцу, чтобы соответствовать ему, вы можете дать его согласно вашей необходимости искать 403
и изменить его на match($0,/\".*403.*\"/)
.
awk 'match($0,/\".*443.*\"/){print substr($0,RSTART,RLENGTH)}' Input_file
ИМХО преимуществопри таком подходе вам НЕ нужно жестко кодировать номер поля в вашем awk
.Еще 1 вещь, которую я предположил, что ваш Input_file будет иметь вид "......403....."
вида только один раз, и вы хотите напечатать только это.
1 больше дополнительных awk
, где я предполагаю, что у вас может быть несколько вхождений "..."
поэтому выбираем только тот, куда 403|443
придет.
awk 'match($0,/\".*443[^"]*/){print substr($0,RSTART,RLENGTH+1)}' Input_file
РЕДАКТИРОВАТЬ: Или, если ваш Input_file имеет "...443..."
один раз или этот текст идет первым после начала строки (при условии, что другие вхождения ".."
появятся позже), тогда вы можете попробовать выполнить следующее.
awk -F'"' '/443/{print $2}' Input_file