linux tcl语法的正则表达式,实现匹配或者替换操作

2023-10-30

IC EDA工具默认支持的内置脚本,一般都是tcl语言。
常用的正则表达式,也就regexp和regsub两个,分别代表匹配字符串和替换字符串的功能。

regexp

regexp,以正则表达式的方式去匹配字符串。
大括号的意思是,模式匹配。
个人建议:变量用双引号;模式匹配的内容,用大括号。不要混用。

语法:regexp ?switchs? ?–? exp string ?matchVar?\ ?subMatchVar subMatchVar…?
regexp命令用于判断正规表达式exp是否全部或部分匹配字符串string,匹配返回1,否则0。

% set a "aaaa /bb"
aaaa /bb
% puts $a
aaaa /bb
% regexp {(.*)\/.*} $a totalMatch subMatch
1
% puts $subMatch
aaaa 
% 

regsub

regsub,以正则表达式的方式去替换字符串。

语法:regsub ?switchs? exp string subSpec varname
regsub的第一个参数是一个整个表达式,第二个参数是一个输入字符串,这一点和regexp命令完全一样,也是当匹配时返回1,否则返回0。不过regsub用第三个参数的值来替换字符串string中和正规表达式匹配的部分,第四个参数被认为是一个变量,替换后的字符串存入这个变量中。

% puts $a
aaaa /bb
% regsub -all {\/.*} $a "/cc" stringB
1
% puts $stringB
aaaa /cc
% 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux tcl语法的正则表达式,实现匹配或者替换操作 的相关文章

  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 如何在线程创建和退出时调用函数?

    include
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu

随机推荐

  • HTML+CSS - 导航栏下拉菜单

    div class main div class nav ul li a href 项目一 a ul li a href 分类一 a li li a href 分类二 a li li a href 分类三 a li li a href 分类
  • pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式

    我们经常会看到后缀名为 pt pth pkl的pytorch模型文件 这几种模型文件在格式上有什么区别吗 其实它们并不是在格式上有区别 只是后缀不同而已 仅此而已 在用torch save 函数保存模型文件时 各人有不同的喜好 有些人喜欢用
  • 数据结构——二叉树遍历和常见问题

    树的概念 1 树的概念 要了解二叉树的遍历规则必须先要知道树的结构和概念 树是一种非线性的数据结构 它是由n n gt 0 个有限结点组成一个具有层次关系的集合 把它叫做树是因 为它看起来像一棵倒挂的树 也就是说它是根朝上 而叶朝下的 根结
  • Arduino配置ESP32-PICO-KIT开发环境

    文章结构 1 说明 2 环境搭建 2 1 ESP32 PICO KIT 2 2 配置Arduino IDE 3 连接硬件 4 烧录例程 5 视频 1 说明 作者还拥有个人公众号 会写一些感悟文章 知圈 二维码如下 欢迎扫描关注 关注后有作者
  • 提高信噪比可以减弱其影响的差错是什么

    通信信道的噪声主要分为两种 热噪声和冲击噪声 1 热噪声为信道固有的 引起的差错是随机差错 可以通过提高信噪比来降低它对数据传输的影响 2 冲击噪声为外界电磁干扰引起的 它是引起传输差错的最主要原因 无法通过提高信噪比来避免
  • Feign 和 OpenFeign 两者区别

    Feign 和 OpenFeign 两者区别 Feign是Springcloud组件中的一个轻量级Restful的HTTP服务客户端 Feign内置了Ribbon 用来做客户端负载均衡 去调用服务注册中心的服务 Feign的使用方式是 使用
  • java学习与总结:计算机网络

    文章目录 计算机网络体系结构 osi七层结构 四层结构 五层网络结构以及对应的协议 TCP和UDP协议 tcp三次握手与四次挥手 11个状态 socket的结构 用户态 内核态 http和https的区别 长连接和短连接的区别 http中常
  • java中的mapper是什么_java中entity层、dao层、service层、mapper层、util层、controller层具体含义以及表现...

    entity层 A entity就是属性类 通常定义在model层里面 相当于MVC的M层 属于数据模型层 B 一般得实体类对应一个数据表 其中的属性定义数据表中的字段 实体类的字段数量 gt 数据库表中需要操作的字段数量 dao层 A d
  • 4Sum (C++实现)

    Given an array S of n integers are there elements a b c and d in S such that a b c d target Find all unique quadruplets
  • java包及其使用

    1 包的概念 包 package 是Java提供的一种区别类的名字空间的机制 是类的组织方式 是一组相关类和接口的集合 它提供了访问权限和命名的管理机制 Java中提供的包主要有以下3种用途 1 将功能相近的类放在同一个包中 可以方便查找与
  • iOS高版本备份恢复到低版本系统的方法

    一般来说 在更新iOS系统的时候我们都会建议大家先用iTunes对系统进行完整备份 但时不时都会有人偷懒 或者使用手机OTA升级而没有对系统备份 最终导致不满意新系统了 想降级却无备份可以恢复的尴尬局面 面对这种情况 小编也是百般无奈啊 好
  • Photoshop 2023(版本24.0)新增功能和软件下载

    了解 2022 年 10 月发布的 Photoshop 桌面版 版本 24 0 中的新增功能和增强功能 新增功能 对象选择工具 在检测和建立选区方面得到了改进 如天空 水 自然地面 植物或建筑等元素 只需将鼠标指针悬停在对象上并单击即可建立
  • Ubuntu系统中安装Java环境

    Ubuntu安装Java环境 步骤1 下载jdk 我选择的jdk版本文件 jdk 8u131 linux x64 tar gz 步骤2 创建单独的目录 sudo mkdir usr local java 步骤3 将下载的文件复制到我们创建的
  • 蓝桥杯 大学B组 JAVA软件开发 真题-九进制转十进制

    问题描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 九进制正整数 2022 9 2022 9 转换成十进制等于多少 运行限制 最大运行时间 1s 最大运行内存 512M import java util Sca
  • WebRTC中的ICE

    ICE简介 ICE是用于UDP媒体传输的NAT穿透协议 适当扩展也可以支持TCP 它需要利用STUN和TURN协议来完成工作 STUN协议提供了获取一个内网地址对应的公网地址映射关系 NAT Binding 的机制 并且提供了它们之间的保活
  • Error: Cannot find module ‘D:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js

    nodejs 在卸载应用程序那里 重新修复一下就可以了
  • Zotero使用GB/T7714 2005模板插入参考文献出现 作者名全部大写问题、et al.变成汉字‘等‘、多出参考文章的doi 问题 的解决方案

    Zotero使用GB T7714 2005模板插入参考文献出现 作者名全部大写问题 et al 变成汉字 等 多出参考文章的doi 问题 的解决方案 问题描述 解决方案 操作步骤 GB T7714 2015 的类似问题 问题描述 zoter
  • Linux虚拟机Ubuntu扩展磁盘内存(超级简单版)

    1 关闭Ubuntu 2 在vmware设置中扩展磁盘空间 中文 虚拟机设置 gt 硬件 gt 硬盘 SCSI gt 扩展磁盘容量 英文 Virtual Machine Settings gt Hardware gt Hard Disk S
  • linux下rsync启动命令,Linux 命令之rsync命令详解

    rsync命令 rsync命令是一个远程数据同步工具 可通过LAN WAN快速同步多台主机间的文件 rsync使用所谓的 rsync算法 来使本地和远程两个主机之间的文件达到同步 这个算法只传送两个文件的不同部分 而不是每次都整份传送 因此
  • linux tcl语法的正则表达式,实现匹配或者替换操作

    regexp regsub IC EDA工具默认支持的内置脚本 一般都是tcl语言 常用的正则表达式 也就regexp和regsub两个 分别代表匹配字符串和替换字符串的功能 regexp regexp 以正则表达式的方式去匹配字符串 大括