#case #string #convert-string #casing #command-line-tool #command-line-interface

bin+lib ccase

命令行界面,用于将字符串转换为任何大小写

5 个不稳定版本

0.4.1 2022年12月20日
0.4.0 2022年12月13日
0.2.0 2020年5月18日
0.1.1 2020年5月15日
0.1.0 2020年4月24日

#932 in 文本处理

MIT 协议

26KB
471

ccase 是一个命令行工具,用于在字符串大小写之间转换

在蛇形大小写、短横线大小写、驼峰大小写、标题大小写、帕斯卡大小写等之间转换字符串。

用例

$ ls ~/roms
donkey_kong_64.z64
kirby_64_the_crystal_shards.z64
super_mario_64.z64
$ ls ~/roms | cut -d '.' -f 1 | ccase -f snake -t title
Donkey Kong 64
Kirby 64 The Crystal Shards
Super Mario 64
$ ls xmas
'Family Christmas photo-1999.png'
Family_christmas_photo-2000.png
family-christmas-photo-2001.png
FamilyChristmasPhoto2002.png
$ for f in xmas/*; do mv "$f" $(ccase -f snake "$f"); done
$ ls xmas
family_christmas_photo_1999.png
family_christmas_photo_2000.png
family_christmas_photo_2001.png
family_christmas_photo_2002.png

安装

您可以使用 cargo 进行安装

cargo install ccase

您还可以从发布中提供的 Debian 进行安装。

用法

-t, --to<case>

将字符串转换成特定的字符串大小写。

$ ccase -t snake myVarName
my_var_name
$ ccase -t upper my-var-name
MY VAR NAME
$ ccase -t kebab my_var_name
my-var-name
$ ccase -t pascal "my var name"
MyVarName

-f, --from<case>

基于该大小写相关的边界来分割字符串。例如,snake 大小写基于下划线 _ 分割,而 camel 基于小写字母后面跟大写字母的字符进行分割 aA

$ ccase -f camel -t snake myVar-Name
my_var-name
$ ccase -f snake -t snake myVar-name
myvar-name
$ ccase -f kebab -t snake myVar-name
myvar_name

-b, --boundaries<string>

指定将字符串分割成单词时应使用的精确条件。将使用边界字符串中存在的任何边界。任何例子都可以,但一种好的指定方式是用冒号 : 分隔边界。例如,aA:a1:1a 将基于小写字母后面跟大写字母、小写字母后面跟数字并前面有数字进行分割。

$ ccase -b "aA:a1" -t kebab myVar1
my_var_1
$ ccase -b "_:-: " -t camel my_Var-name
my-var-name
$ ccase -b "aAa" -t snake myVar
my_v_ar
$ ccase -b "AAa" -t snake MYVarName # special acronym boundary
my_var_name

-p, --pattern<pattern>

根据模式转换输入的单词。模式描述了“单词大小写”的顺序。例如,驼峰模式是小写单词后面跟大写单词,就像在驼峰大小写中一样,而小写模式只是小写单词,就像在蛇形大小写中一样。

$ ccase -p camel my-var-name
myVarName
$ ccase -p capital my-var-name
MyVarName
$ ccase -p sentence my-var-name
Myvarname

-d, --delimeter<string>

使用分隔符连接单词。默认情况下,分隔符是一个空字符串,就像在驼峰大小写中使用的那样。

$ ccase -p camel -d _ my-var-name
my_Var_Name
$ ccase -p capital -d . my-var-name
My.Var.Name
$ ccase -p sentence -d __ my-var-name
My__var__name

大小写转换如何工作

“大小写”可以定义为用“分隔符”连接的“模式”。将单词列表转换为大写涉及两个步骤。首先,每个单词都通过模式进行转换。然后,使用分隔符将单词连接在一起。

大小写转换 是将单个字符串分割成单词,然后进行转换并连接。输入通过 边界 来分割。

步骤 1:通过边界分割输入

边界定义了如何分割输入。有三种类型的边界。有基于字符的边界,如连字符 -、下划线 _ 和空格 ,它们不属于最终单词列表,但会在字符周围分割输入。还有像小写-大写 (aA) 或数字-小写 (1a) 这样的边界,它们在字符之间分割输入,并且匹配的字符包含在结果中。最后还有首字母缩略词边界 (AAa),它在两个大写字母之间分割(例如 HTTPRequest)。

ccase 中,可以使用 --boundaries 选项指定边界,或者可以使用 --from 定义要转换的 大小写。转换成特定大小写的输入将具有与结果关联的边界。例如,蛇形大小写通过下划线连接,因此只使用下划线作为边界。另一方面,驼峰式大小写中的单词之间有边界,因此使用小写-大写 (aA) 边界。

步骤 2:使用模式转换单词

模式是一系列 单词大小写,描述单个单词如何转换。例如,小写单词大小写将所有字符转换为小写,大写单词大小写将所有字符转换为大写,而首字母大写单词大小写将第一个字母转换为大写,其余字母转换为小写。例如,蛇形大小写使用一个模式,其中所有单词都应小写化。这是小写模式。驼峰式大小写使用一个模式,其中第一个单词小写化,其余单词大写化。这被称为驼峰模式。

ccase 中,可以直接使用 --pattern 指定模式,或者 --to 选项中关联的任何模式都将用于大小写。

步骤 3:使用分隔符连接单词

最后,单词通过指定为分隔符的字符串连接。例如,蛇形、短横线和下划线分别使用字符字符串 _- 和空格。分隔符也可以是空字符串,例如在驼峰式中。

ccase 中,可以使用 --delimiter 指定分隔符,或者 --to 选项中与大小写关联的分隔符。如果没有提供分隔符,分隔符默认为空字符串。

大小写、模式和边界

大小写列表

大小写 示例
upper 大写
lower 小写
title 标题
toggle 切换
camel 驼峰
pascal PascalCase
uppercamel UpperCamelCase
snake snake_case
uppersnake UPPER_SNAKE_CASE
screamingsnake SCREAMING_SNAKE_CASE
kebab kebab-case
cobol COBOL-CASE
upperkebab UPPER-KEBAB-CASE
train Train-Case
flat flatcase
upperflat UPPERFLATCASE
alternating aLtErNaTiNg CaSe
random RANDOm cAsE
pseudorandom PseUdO rAnDoM cASe

模式列表

模式 定义
upper UPPER, UPPER, ...
lower lower, lower, ...
capital Capital, Capital, ...
sentence Capital, lower, lower, ...
camel lower, Capital, Capital, ...

边界列表

类型 示例字符串
连字符 -
下划线 _
空格
小写-大写 Aa
大写-小写 aA
数字-大写 1A
上数字 A1
下数字 1a
下数字 a1
缩写 AAa

Rust 库

ccase 是一个基于 Rust 库 convert_case(GitHub, crates.io) 构建的命令行工具。此库及其文档是此命令行工具中找到的情况、模式、边界和默认行为的来源。

依赖

~3–15MB
~153K SLoC