Учитывая эти входные данные:
line1
Link1: //website/go/<example>
line2
Вы можете использовать string map
, как вы делаете, а затем постобработать результат с string trim
(при условии, что вы ожидаете только одну вещь в конце) или удалить переводы строк с помощью другого элемента отображения.Для ясности две строки:
set temp [string map { " " "" "line1" "" "Link1: " "" "line2" "" } $output]
set temp [string trim $temp]
puts "found link : $temp
Однако в этом случае я бы на самом деле использовал regexp
, чтобы выбрать нужные данные:
regexp -line {Link1:\s+(.*\S)} $output -> temp
puts "found link : $temp
Регулярные выражения, как правило, больше подходят для анализа частично отформатированных данных, если вы помните, что они должны быть короткими.Чем дольше RE, тем труднее его понять.