Учитывая, что ваш фактический файл Input_file совпадает с показанными примерами, в этом случае вам могут помочь следующие.
awk 'match($0,/http:\/\/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+\/.*\? /){gsub(/+/," ",$2);print $2}' Input_file
ИЛИ (форма решения не с одним вкладышем):
awk '
match($0,/http:\/\/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+\/.*\? /){
gsub(/+/," ",$2);
print $2
}' Input_file
Регулярное выражение в match
Функция awk
проверит, имеет ли строка URL-адрес, начиная с http до ?
, если он совпадает, затем напечатает 2-й столбец этой строки.