TCL命令

2023-11-15

目录

list命令

concat命令

lindex命令

llength命令

linsert命令

lreplace命令

lrange命令

lappend命令

lsearch命令

lsort命令

split命令

join命令


list命令

list 这个概念在 TCL 中是用来表示集合的。TCL 中 list 是由一堆元素组成的有序集合,list 可以嵌套定义,list 每个元素可以是任意字符串,也可以是 list。下面都是 TCL 中的合法的 list:

{}         //空 list

{a b c d}

{a {b c} d}         //list 可以嵌套

list 是 TCL 中比较重要的一种数据结构,对于编写复杂的脚本有很大的帮助,TCL 提供了很多 基本命令对 list 进行操作。

语法: list ? value value...?

这个命令生成一个 list,list 的元素就是所有的 value。例:

list 1 2 {3 4}

输出:1 2 {3 4}

concat命令

语法:concat list ?list...?

这个命令把多个 list 合成一个 list每个 list 变成新 list 的一个元素

set a [list 1 2 {3 4}]

输出:1 2 {3 4}

set b [list a b {c d}]

输出:a b {c d}

set tet [concat $a $b]

输出:1 2 {3 4} a b {c d}

lindex $tet 3        //返回角标为3的元素

输出:a

llength $tet        //返回元素个数

输出:6

lindex命令

语法:lindex list index

返回 list 的第 index 个(0-based)元素。例:

lindex {1 2 {3 4}} 2 3 4

输出:3 4

llength命令

语法:llength list

返回 list 的元素个数。例

llength {1 2 {3 4}}

输出:3

linsert命令

语法:linsert list index value ?value...?

返回一个新串,新串是把所有的 value 参数值插入 list 的第 index 个(0-based)元素之前得到。 例:

linsert {1 2 {3 4}} 1 7 8 {9 10}

输出:1 7 8 {9 10} 2 {3 4}

lreplace命令

语法:lreplace list first last ?value value ...?

返回一个新串,新串是把 list 的第 firs (0-based)t 到第 last 个(0-based)元素用所有的 value 参数替换得到的。如果没有 value 参数,就表示删除第 first 到第 last 个元素。例:

lreplace {1 7 8 {9 10} 2 {3 4}} 3 3

输出:1 7 8 2 {3 4}

lreplace {1 7 8 2 {3 4}} 4 4 4 5 6

输出:1 7 8 2 4 5 6

lrange命令

语法:lrange list first last

返回 list 的第 first (0-based)到第 last (0-based)元素组成的串,如果 last 的值是 end。就是 从第 first 个直到串的最后。

lrange {1 7 8 2 4 5 6} 3 end

输出:2 4 5 6

lappend命令

语法:lappend varname value ?value...?

把每个 value 的值作为一个元素附加到变量 varname 后面,并返回变量的新值,如果 varname 不存在,就生成这个变量。例:

lappend a 1 2 3

输出:1 2 3

set a

输出:1 2 3

lsearch命令

语法:lsearch ?-exact? ?-glob? ?-regexp? list pattern

返回 list 中第一个匹配模式 pattern 的元素的索引,如果找不到匹配就返回-1。-exact、-glob、 -regexp 是三种模式匹配的技术。-exact 表示精确匹配;-glob 的匹配方式和 string match 命令的匹配方式相同,将在后面第八节介绍 string 命令时介绍;-regexp 表示正规表达式匹配, 将在第八节介绍 regexp 命令时介绍。缺省时使用-glob 匹配。例:

set a { how are you }

输出:how are you

lsearch $a y* 2 % lsearch $a y?

输出:-1

lsort命令

语法:lsort ?options? list

这个命令返回把 list 排序后的串。options 可以是如下值:

-ascii 按 ASCII 字符的顺序排序比较.这是缺省情况。

-dictionary 按字典排序,与-ascii 不同的地方是:

(1)不考虑大小写

(2)如果元素中有数字的话,数字被当作整数来排序.

因此:bigBoy 排在 bigbang 和 bigboy 之间, x10y 排在 x9y 和 x11y 之间.

-integer 把 list 的元素转换成整数,按整数排序.

-real 把 list 的元素转换成浮点数,按浮点数排序.

-increasing 升序(按 ASCII 字符比较)

-decreasing 降序(按 ASCII 字符比较)

-command command TCL 自动利用 command 命令把每两个元素一一比较,然后给出排序 结果。

split命令

语法:split string ?splitChars?

把字符串 string 按分隔符 splitChars 分成一个个单词,返回由这些单词组成的串。如果 splitChars 是一个空字符{},string 被按字符分开。如果 splitChars 没有给出,以空格为分隔符。例:

split "how.are.you" .

输出:how are you

split "how are you"

输出:how are you

split "how are you" {}

输出:h o w { } a r e { } y o u

join命令

语法:join list ?joinString?

join 命令是命令的逆。这个命令把 list 的所有元素合并到一个字符串中,中间以 joinString 分 开。缺省的 joinString 是空格。例:

join {h o w { } a r e { } y o u} {}

输出:how are you

join {how are you} .

输出:how.are.you

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCL命令 的相关文章

  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn

随机推荐

  • 刷脸支付助力互联网产业时代全面到来

    近两年来 刷脸支付发展如火如荼 宁波 长沙等多个城市相继开展线下刷脸支付试点 建设银在其网点的ATM机推出刷脸取款 光大银也将人脸识别应用于账户登陆 转账 线上融资等场景 支付宝 财付通等第三方支付公司也争相推出刷脸支付设备 随着移动支付的
  • cs231n: How to Train a Neuron Network 如何训练神经网络

    CS231N第六第七课时的一些笔记 如何训练神经网络是一个比较琐碎的事情 所以整理了一下 以后训练Neuron Network的时候可以看一下 Activation Functions ReLu good ELU leaky ReLu no
  • STL中的栈——stack

    stack为STL中的适配器容器 具有栈的结构特性 对于适配器容器 默认底层容器为deque 在创建stack对象时 也可以指定其他线性容器作为其底层容器 基本操作 include
  • AIX/Unix/Linux/HP-UX 系统中文字符集

    在运行环境Unix与Linux系统中遇到中文乱码 在查看后台运行日志时很不方便 于是在网上查看解决方法 经过以下内容可以解决这个问题 希望看到此篇的人能解决此题 针对不同系统可以选用字符集如下 AIX zh CN IBM eucCN Lin
  • 单片机毕业设计不用愁!!30篇单片机毕业设计参考案例

    单片机毕业设计不用愁 30篇单片机毕业设计参考案例 30篇单片机毕业设计参考案例 这篇文章分享给大四的小伙伴 是时候该准备毕业设计了吧 别偷懒了 第二学期就准备实习了喔 所以小编我就开始为你们准备资料啦 30篇单片机毕业设计参考案例给你们啦
  • Eclipse安装查看java字节码插件Bytecode Outline

    一 下载地址 download 选择适合你自己的eclipse的版本 二 安装 根据提示把下载的jar包放进对应的目录里面 然后重启就行了 我自己的是放在这个路径下 E eclipse jee kepler SR2 win32 eclips
  • 侯捷-C++面向对象高级开发(上)-complex类实现

    complex类实现 comlex h ifndef COMPLEX H define COMPLEX H include
  • 从Http请求中获取请求的实际IP地址

    public static String getRemoteIP HttpServletRequest request String ip null if ip null ip length 0 unknown equalsIgnoreCa
  • 【日志工具】g3log_6_ROS1中g3log的安装&使用

    ROS1中g3log的安装 使用 基于ros1 melodic版本进行封装使用 g3log库安装 git clone https github com KjellKod g3log git cd g3log git checkout c 1
  • 无代码编程时代下,程序员要失业了?

    中台之后 便是无代码编程 无代码编程是什么 开发流程是怎么样的 有何优缺点 无代码编程时代来了 就不需要程序员编写代码了吗 下面作者将跟大家聊聊无代码编程的那些事儿 规模化的组织 经常要面临这样的挑战 每个应用的基础设施是相同的 部分的代码
  • 修改 ~/.bashrc显示 git 当前分支

    vim bashrc git branch show configuration PS1 w git branch 2 gt dev null grep colrm 1 2 现在重新打开一个终端 就能看到所在的分支啦 转载于 https w
  • Vue按回车键进行搜索

    Vue项目按回车键进行搜索 最近有一个需求 为了用户方便进行搜索数据的时候不想点击搜索按钮 想要在表单内输入完成之后直接按回车键进行搜索 根据vue ElementUUi完成 下面直接上代码 一 第一种方法 1 现在el input里面添加
  • hibernate之关于Hibernate的一级、二级缓冲

    Hibernate 一级 二级缓冲 Hibernate缓冲按级别共分为两种 一级缓冲 Session 和二级缓冲 SessionFactory 有的也说是三种 还有一种是查询缓冲 当然 查询缓冲是依托于二级缓冲 ok 什么是缓冲 在内存里开
  • 【全网最细PAT题解】【PAT乙】1044 火星数字(测试点2,测试点4详细解释)

    题目链接 1044 火星数字 题目描述 火星人是以 13 进制计数的 地球人的 0 被火星人称为 tret 地球人数字 1 到 12 的火星文分别为 jan feb mar apr may jun jly aug sep oct nov d
  • Bigdata1234.cn Java 课堂测试

    Java源文件中有一个公共类名称为Test 则该源文件名必须是 Test java Java中的基本数据类型共有8个 byte short int long float double char boolean Eclipse中内容补全的快捷
  • String的基本操作函数

    string类的构造函数 string const char s 用c字符串s初始化 string int n char c 用n个字符c初始化 此外 string类还支持默认构造函数和复制构造函数 如string s1 string s2
  • 错误解决:liquibase.exception.LockException

    今天发现个错误liquibase exception LockException 网上解决方法 url http forum liquibase org topic lock is not released if nocount is on
  • 全网最全C盘清理指南,无需安装清理软件,值得收藏

    最近电脑运行卡顿 打开一看 原来C盘爆红了 找了一个b站的清理教程 此篇来做一个总结 会讲哪些能删哪些不能删 以及原因 无需安装如360 腾讯电脑管家之类的清理软件 原视频链接 up主 小宇Boihttps www bilibili com
  • 决策树模型

    决策树模型是机器学习的各种算法模型中比较好理解的一种模型 它的基本原理是通过对一系列问题进行if else的推导 最终实现相关决策 下图所示为一个典型的决策树模型 员工离职预测模型的简单演示 该决策树首先判断员工满意度是否小于5 若答案为
  • TCL命令

    目录 list命令 concat命令 lindex命令 llength命令 linsert命令 lreplace命令 lrange命令 lappend命令 lsearch命令 lsort命令 split命令 join命令 list命令 li