cmedit – 在 csmes 文件中编辑路径
cmedit 是一个用于修改 .csmes
文件中文件路径的工具。
语法
cmedit
[<options>] <infile> [-o
<outfile>]
选项
- <infile>: 要编辑的
.csmes
文件。除非设置了-o
选项,否则会在此文件中将路径名更改写入。 (必需参数) -o
<outfile> |--output
=<outfile>:.csmes
输出文件。如果设置了此参数,则原始的 <infile> 保持不变,将 <infile> 的编辑版本写入 <outfile>。- <options>: 下列之一
-c
<depth> |--cut
=<depth>: 从 <infile> 中所有路径中移除一个共同的初始部分。<depth> 是一个非负整数,描述了应移除的路径组件数。路径组件是位于斜杠或反斜杠之间的字符序列。Windows 路径名开头的驱动器字母(加冒号)也计为一个路径组件。因此,命令
--cut=1
将将路径/home/someone/main.cpp
转换为/someone/main.cpp
,并将C:\mydir\main.cpp
转换为\mydir\main.cpp
。如果 <depth> 太大,则 cmedit 以错误退出并做不了任何事。如果路径小于 <depth> 个组件或有两个路径在第一个 <depth> 个组件中不同,则会发生这种情况。因此,如果 <infile> 包含以下两个路径:
/home/someone/myproject/main.cpp
和/home/someone/library/header.h
,则命令--cut=3
将无法成功。--cut
命令始终在所有--rename
命令之前执行。-C | --cut-all
: 从 <infile> 中的路径中移除最大的共同初始部分。该选项相当于使用最高可能的值调用-c
<depth>。--cut-all
命令始终在所有--rename
命令之前执行。您可以使用--cut
或--cut-all
,但不能同时使用两者。-r
<command> |--rename
=<command>:将所有匹配给定模式的路径重命名。参数 <command> 的形式为 <pattern>、<replacement> 或 <pattern>、<replacement>、<flags>,其中
- <pattern> 是替换的模式。 cmedit 在 <infile> 的每个路径中搜索该模式,并尝试用 <replacement> 字符串进行替换。如果路径中 <pattern> 出现多次,则替换所有出现。
默认情况下,<pattern> 使用的是 通配符 语法,其中
?
代表单个字符,*
代表任意数量的字符。通过设置r
标志(见下文),可以使用 正则表达式 语法代替。(注意,在使用正则表达式时,Microsoft® Windows 路径名中的反斜杠必须加倍,以区分正则表达式语法的反斜杠。) - <replacement> 是替换的字符串。
- <flags> 可以是字母
i
或r
或两者。旗标i
启用不区分大小写的比较,而r
启用正则表达式匹配。 - 将所有匹配给定模式的函数重命名。模式与源文件重命名相同。
如果 <pattern> 或 <replacement> 应该包含逗号,它可以写成
\,
。此选项可以重复以设置多个 <command>。然后按照它们书写的顺序依次执行命令。但在执行之前,cmedit 会检查由此产生的转换是否可能。如果有两个路径将被转换为相同的新的路径,cmedit 会以错误状态退出并做不了任何事情。
- <pattern> 是替换的模式。 cmedit 在 <infile> 的每个路径中搜索该模式,并尝试用 <replacement> 字符串进行替换。如果路径中 <pattern> 出现多次,则替换所有出现。
-l | --list-sources
:列出 <infile> 中所有源路径。路径保持不变。--list-functions
:列出 <infile> 中可以重命名的所有函数的名称。-I | --case-sensitivity-fix
:重命名所有文件名相同但大小写不同的源文件。-f | --force
:即使报告错误也重命名源文件。-n | --dry-run
:不更改路径,只描述会执行的操作。-v | --verbose
:使输出更加详细。@
<path>:从 <path> 中的文件读取命令行选项并将其插入到此选项的位置。选项文件是每行一个选项的文本文件。忽略前面的空格、尾随空格和空行。
退出值
cmedit 成功时退出状态为 0。如果 Coco 许可证无效,返回 -1,如果无法执行所需的重命名,返回 1。
Coco v7.2.0©2024 The Qt Company Ltd.
Qt 及其相关标志是芬兰及全球其他国家的 The Qt Company Ltd. 的商标。所有其他商标归其所有者所有。