Моей строки, как следующее:Tcl: ошибка при использовании команды
str1.str2.strn-1.{i}.strn
Я использую команду sed
, чтобы удалить строку после последней точки «»
proc check_str {str} {
set cmd "echo $str | sed -E 's/[^.]+$//'"
set new_str [exec sh -c $cmd]
puts "the new string is :$new_str"
}
Но я получил сообщение об ошибке:
invalid command name ^.
и новая строка не отображается!
Как я могу отобразить новую строку?
По правде говоря, Tcl/Tk предоставляет механизмы для обработки регулярных выражений, не требуя ничего такого неуклюже, как выполнение внешней команды, чтобы справиться с ним. –
так что альтернативное решение с tcl? –
Вы задавали много довольно простых вопросов о обработке строк. Я бы порекомендовал вам потратить некоторое время на [учебник Tcl] (http://tcl.tk/man/tcl8.5/tutorial/tcltutorial.html) и [страницы руководства Tcl] (http://tcl.tk /man/tcl8.6/TclCmd/contents.htm) - вы скоро сможете ответить на свои вопросы. –