Объясните вызовы regsub

regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd 

Может кто-нибудь объяснить смысл этих трех утверждений? Это три разных утверждения.

1 ответ

regsub -all "\\\\033" $cmd "\033" cmd

Это заменяет все случаи обратной косой черты с последующим 033 с символом ASCII ESC. Он читает строку для обработки из cmd переменная и записывает его обратно в эту переменную.

[regsub -all "\\\\c" $cmd "" cmd]

Это заменяет все случаи обратной косой черты с последующим c с пустой строкой (эффективно удаляя ее). Это обновляет cmd переменная. Он подставляет в свой вызывающий контекст количество выполненных замен.

regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd

Это немного сложнее. Для определенного числового индекса, хранящегося в i переменная, она заменяет все экземпляры обратной косой черты, за которыми следует индекс iэлемент (считая от 0) списка в exp_out, Это обновляет cmd переменная.

Другие вопросы по тегам