当前位置: 首页 > article >正文

tcl/perl 脚本命令学习

记录日常遇到的命令

目录

记录日常遇到的命令

1 sed -i

2 cat

3 $ 参数


1 sed -i

(1)sed -i 's/\.\.\/\.\.\//\.\.\//g' design.f 含义

命令 sed -i 's/\.\.\/\.\.\//\.\.\//g' design.f 使用 sed 编辑器来直接修改文件 design.f 中的内容。具体来说,它会查找文件中所有出现的 ../../ 字符串,并将其替换为 ../

这里的命令解释如下:

  • sed: 是 stream editor 的缩写,用于对文本进行过滤和转换。

  • -i: 表示直接修改文件内容,而不是输出到标准输出。

  • 's/\.\.\/\.\.\//\.\.\//g': 是 sed 的替换命令。

    • s: 表示替换操作
    • \.\.\/\.\.\/: 是被替换的文本,即 ../../。注意,. 在正则表达式中是一个特殊字符,表示任意单个字符,因此需要用 \ 进行转义。
    • \.\.\/: 是替换后的文本,即 ../。同样,. 也被转义了。
    • g: 表示全局替换,即替换行中的所有匹配项。
  • design.f: 是要修改的文件名。

执行这个命令后,design.f 文件中所有的 ../../ 都会被替换为 ../

(2)sed -i 's/\-f/\/\/\-f/g' design.f 含义

命令 sed -i 's/\-f/\/\/\-f/g' design.f 使用 sed 编辑器来直接修改文件 design.f 中的内容。具体来说,它会查找文件中所有出现的 -f 字符串,并将其替换为 //-f

这里的命令解释如下:

  • sed: 是 stream editor 的缩写,用于对文本进行过滤和转换。

  • -i: 表示直接修改文件内容,而不是输出到标准输出。

  • 's/\-f/\/\/\-f/g': 是 sed 的替换命令。

    • s: 表示替换操作。
    • \-f: 是被替换的文本,即 -f。注意,- 在正则表达式中是一个特殊字符,表示范围(例如 [a-z]),因此需要用 \ 进行转义。
    • /\/\/-f: 是替换后的文本,即 //-f。这里 / 字符没有被用作正则表达式中的特殊字符,所以不需要转义。但是,为了清晰起见,通常建议对正则表达式中的所有斜杠进行转义,以避免混淆,尽管在这个特定情况下不是必需的。
    • g: 表示全局替换,即替换行中的所有匹配项。
  • design.f: 是要修改的文件名。

执行这个命令后,design.f 文件中所有的 -f 都会被替换为 //-f。这种替换通常用于修改配置文件、脚本或源代码中的参数、选项等。

cat

(1)cat ../sim/design.f >> design.f 含义

命令 cat ../sim/design.f >> design.f 在 Linux 和 Unix 系统中用于将 ../sim/design.f 文件的内容追加到当前目录下的 design.f 文件的末尾。

这里,cat 是 concatenate(连接)的缩写,用于连接文件并打印到标准输出设备上。但是,在这个命令中,我们使用了 >> 重定向操作符,它表示将输出追加到指定的文件中,而不是覆盖文件或输出到屏幕。另外, > 代表覆盖文件文件,使用要特别注意。

  • ../sim/design.f:这是一个相对路径,指向当前目录的上一级目录(..)中的 sim 目录下的 design.f 文件。
  • >> design.f:这表示将输出追加到当前目录下的 design.f 文件的末尾。

执行这个命令时,cat 会读取 ../sim/design.f 文件的内容,并将其追加到当前目录下的 design.f 文件的末尾。如果 design.f 文件不存在,它会被创建。如果 design.f 文件已经存在,它的内容会被保留,并且 ../sim/design.f 的内容会被添加到它的末尾。

3 $ 参数

$# -eq 1 代表输入的参数数量为1,$1 代表输入的第一个变量。

if [ $# -eq 1 ]; then
    # 如果参数数量为1,执行这里的代码
    case "$1" in
        pattern1)
            # 如果 $1 匹配 pattern1,执行这里的代码
            ;;
        pattern2)
            # 如果 $1 匹配 pattern2,执行这里的代码
            ;;
        *)
            # 如果 $1 不匹配任何模式,执行这里的代码
            ;;
    esac
else
    # 如果参数数量不为1,执行这里的代码
fi


http://www.kler.cn/a/349953.html

相关文章:

  • PVE 虚拟机安装 Debian 无图形化界面服务器
  • Mongodb 慢查询日志分析 - 1
  • 算法随笔_19: 数组中的最长山脉
  • vim在命令模式下的查找功能
  • 打造本地音乐库
  • [Computer Vision]实验二:图像特征点提取
  • 基于SpringBoot+Vue的益农智慧服务平台【提供源码+答辩PPT+参考文档+项目部署】
  • 2017年-2021年 软件工程程序设计题(算法题)实战_c语言程序设计数据结构程序设计分析
  • 12- Cesium 中动态处理与四个圆形渐变过渡材质相关的属性
  • 【微信小程序_4_小程序view组件和swiper组件】
  • 扫雷(C 语言)
  • 尚硅谷rabbitmq2024介绍和工作模式 第4-9节 答疑
  • js 精确计算(加减乘除)
  • ajax地址参数与data参数运用
  • 数据结构与算法:贪心算法与应用场景
  • Rust 与生成式 AI:从语言选择到开发工具的演进
  • 2-STM32入门
  • [LeetCode] 217. 存在重复元素
  • python中深拷贝和浅拷贝的区别
  • MySQL 大数据量导入与导出全攻略
  • 扫普通链接二维码打开小程序
  • 攻上云端,独立数据库OceanBase的生存之道
  • Flink算子状态为何只能用ListState?
  • 网络爬虫-数美滑块验证码
  • 24/10/12算法笔记 VGG
  • 交叉编译--目标平台aarch64 ubuntu 22.04