1 个不稳定版本
0.1.0 | 2023年5月8日 |
---|
在 命令行工具 中排名第 2443
15KB
172 行
FindReplace
FindReplace 是一个命令行工具,允许您在文件内查找并将指定模式替换为替代文本。
安装
要安装 FindReplace,您需要在系统上安装 Rust 和 Cargo。然后,克隆此仓库并运行 cargo build --release
以构建应用程序。二进制文件将位于 target/release
目录中。
本指南提供了几种在计算机上安装 FindReplace 工具的方法。按照以下步骤进行,使用最适合您的方法设置 FindReplace。
方法 1:手动安装
- 访问 FindReplace 的 GitHub 页面,导航到“发行版”部分。
- 下载适用于您的操作系统的最新发行版,并解压存档内容。
- 将解压的二进制文件复制到您的
$PATH
目录中。在 macOS 或 Linux 上,这可能是/usr/local/bin
,而在 Windows 上,您可以将二进制文件复制到C:\Windows\system32
。 - 通过在终端或命令提示符中运行命令
findreplace --version
来验证 FindReplace 是否正确安装。
方法 2:使用 Cargo
如果您已经在计算机上设置了 Rust 开发环境,您可以使用 cargo install
命令来安装 FindReplace
- 打开终端或命令提示符并运行命令
cargo install findreplace
。 - Cargo 将下载、构建和安装 FindReplace 二进制文件。
- 二进制文件将被放置在macOS或Linux上的
$HOME/.cargo
,或者在Windows上的%USERPROFILE%\.cargo\bin
。 - 通过运行命令
findreplace --version
来验证查找替换是否安装正确。
用法
FindReplace
A tool to find and replace given pattern with substitute inside file.
Syntax:
findreplace [options]
findreplace [option] <pattern> <substitute> <file_path>
where,
pattern the pattern to search for in the file
substitute the text to replace the pattern with or a JSON/YAML/CSON formatted hash-map
file_path the path to the file to search and replace in
Options:
-h --help Show help menu
-V --version Show version info
-l --log Show verbose log
Usages:
findreplace --help
findreplace --version
findreplace 'foo' 'bar' file.txt
findreplace 'hello world' '{"hello":"hi","world":"earth"}' file.txt
findreplace 'hello world' '{hello: hi, world: earth}' file.txt
findreplace 'hello world' 'hello:hi;world:earth' file.txt
findreplace --log 'hello world' 'hello:hi;world:earth' file.txt
Extras:
findreplace "`\{[a-zA-Z0-9_-]+`\}" '{:(;}:)' file.txt [PowerShell]
findreplace '\{[a-zA-Z0-9_-]+\}' '{:(;}:)' file.txt [Bash]
findreplace "\{[a-zA-Z0-9_-]+\}" "{:(;}:)" file.txt [CMD]
JSON与YAML与CSON
JSON(JavaScript对象表示法)、YAML(YAML不是标记语言)和CSON(紧凑符号对象表示法)都是用于存储和交换数据的数据序列化格式。
JSON是一种轻量级的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。它基于JavaScript编程语言的一个子集,通常用于在服务器和Web应用程序之间传输数据。
YAML是一种易于阅读的数据序列化格式,常用于配置文件和在存储或传输数据的应用程序中。它旨在比JSON和其他数据序列化格式更具可读性,并使用缩进来表示数据结构的嵌套。
CSON是YAML的变体,使用简洁的YAML语法定义数据结构。它通过排除分隔符周围的空格、未引用的键和其他方面来努力比JSON或YAML更小,使其更容易编写和阅读。它还允许使用许多特殊字符(符号)作为分隔符,例如;
、,
、|
、/
、~
。虽然可以选择任何可用的符号作为分隔符,但必须在文档中保持一致。不允许组合符号,这可能会导致意外的结果。
每种格式都有其自身的优点和缺点。JSON得到了广泛的支持且易于使用,但由于其严格的语法,可能比YAML或CSON更难阅读。YAML比JSON更易于阅读,但其在某些情况下依赖于缩进可能使其更难以处理。CSON提供了与YAML许多相同的优点,但其使用的紧凑符号语法可能使不熟悉该语言的开发者难以访问。
最终,这些格式之间的选择将取决于您的具体需求和偏好。JSON对于Web应用程序或其他需要互操作性的情况是一个不错的选择。YAML或CSON可能更适合配置文件或其他以可读性为重要性的情况。但对于这个工具,CSON由于其紧凑的大小和在终端中输入时没有开销,是最好的选择,而其他格式则需要在其中使用转义字符。
工作逻辑
process_file
函数接受三个参数:file_path
、substitute
和pattern
。它检查给定file_path
的文件是否存在,然后读取其内容。然后它尝试将substitute
字符串解析为JSON、YAML或CSON,并调用相应的search_and_replace_with_map
函数以替换文件的内容。如果substitute
字符串不能解析为这些格式中的任何一种,它将回退到调用带有原样substitute
字符串的search_and_replace
函数。
构建
要构建FindReplace
CLI应用程序,请按照以下步骤操作
- 通过运行以下命令从GitHub克隆
FindReplace
存储库
git clone https://github.com/isurfer21/FindReplace.git
- 通过运行以下命令导航到克隆的存储库
cd FindReplace
- 通过运行以下命令使用Cargo构建项目
cargo build
运行这些命令后,您应该拥有一个本地副本的 FindReplace
项目,可以立即使用。
可执行二进制文件位于 .\target\debug\
目录中。在 Windows 上,二进制文件名为 findreplace.exe
,而在 macOS 上则简单地命名为 findreplace
。
发布
要将 FindReplace
crate 发布到 crates.io,请运行以下命令
cargo publish
这将把crate上传到 crates.io,以便其他人可以轻松下载和使用。
依赖项
~4–5.5MB
~104K SLoC