在Linux终端中进行大小写转换

有很多方法可以在 Linux 命令行中将文本从小写更改为大写,反之亦然。实际上,有一组这样的命令可以选择。这篇文章检验了一些优秀的命令来完成这项工作,以及你该如何让它们正常工作。

使用 tr

tr(translate)命令是在命令行或脚本中最容易使用的命令之一。如果你要确定要一串大写字符串,你只需将它传给 tr,如下所示:

echo Hello There | tr [:lower:] [:upper:]
HELLO THERE

下面是一个在脚本中使用这个命令的例子,当你要确保添加到文件中的所有文本都使用大写形式以保持一致性时(LCTT 译注:这里输入部门名称作为示例):

#!/bin/bash echo -n "Enter department name: "read dept
echo $dept | tr [:lower:] [:upper:] >> depts

将顺序切换为 [:upper:] [:lower:] 会产生相反的效果,将所有大写的部门名称都转换为小写:

echo $dept | tr [:upper:] [:lower:] >> depts

同样,你可以使用 sed 命令的 A-Z 和 a-z 字符串完成相同的操作:

echo $dept | tr a-z A-Z >> depts

毫无疑问,反转 a-z 和 A-Z 字符串的顺序将产生相反的效果,将文本全部变为小写。

使用 awk

awk 命令可让你使用它的 toupper 和 tolower 选项执行相同的操作。上例脚本中的命令可以用这种方式代替:

echo $dept | awk '{print toupper($0)}' >> depts

相反操作(切换为小写)如下所示:

echo $dept | awk '{print tolower($0)}' >> depts

使用 sed

sed(stream editor)命令也可用于切换大小写。它与上面显示的两个命令中的第一个具有相同的效果。

echo $dept | sed 's/[a-z]/\U&/g' >> depts

从大写字母切换到小写字母只需将行尾附近的 U 替换为 L。

echo $dept | sed 's/[A-Z]/\L&/g' >> depts

操作文件中的文本

awk 和 sed 都能更改整个文件的文本大小写。因此,你发现你的老板需要所有部门名称的小写么?没问题。只需带上文件名运行以下命令:

$ awk '{print tolower($0)}' depts
finance
billing
bookkeeping

如果要覆盖 depts 文件,而不仅仅是以小写形式显示,则需要执行以下操作:

$ awk '{print tolower($0)}' depts > depts-
$ mv depts- depts

但是,使用 sed 进行更改,你可以避免最后一步,因为 sed 可以“原地”编辑文件,如下所示,文件完整,但文本全部小写:

$ sed 's/[A-Z]/\L&/g' depts

仅将首字母转换为大写

要仅将字符串中单词的首字母转换为大写,那么可以执行以下操作:

echo design \& engineering| sed -e "s/\b\(.\)/\\u\1/g"
Design & Engineering

该命令将确保首字母大写,但不会更改其余字母。

确保只有首字母大写

当要更改文本以使只有首字母大写时,这更具挑战性。假设你正在处理一个工作人员姓名列表,并且希望以正常的“名 姓”方式对其格式化。

1. 使用 sed

你可以使用更复杂的 sed 命令来确保以下结果:

echo design \& ENGINEERING | sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\\u\1\L\2/g'
Design & Engineering

2. 使用 Python

如果你已安装 Python,你可以运行这样的命令,它还可以设置文本格式,以便每个单词只有首字母大写,并且它可能比上面显示的 sed 命令更易于解析:

echo -n "design & engineering" | python3 -c "import sys; print(sys.stdin.read().title())"
Design & Engineering

有多种方法可以在大小写之间更改文本格式。哪种方法效果最好取决于你要处理的是单个字符串还是整个文件,以及想要的最终结果。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/199114.html<

(0)
运维的头像运维
上一篇2025-04-04 16:45
下一篇 2025-04-04 16:46

相关推荐

  • ExtraVM美国VPS测评,高防实测数据与性能表现,ExtraVM美国VPS好用吗,ExtraVM美国VPS怎么样

    ExtraVM 美国 VPS 在 2026 年高防实测中表现卓越,其抗 DDoS 能力可稳定抵御 500Gbps 以上流量攻击,同时保持低延迟与高 I/O 性能,是处理高并发业务与敏感数据的首选方案,核心性能:高防架构与实战数据解析在 2026 年的网络攻防环境下,选择 VPS 服务商不仅要看价格,更要看其底层……

    2026-05-02
    0
  • 美国、新加坡ExtraVMVPS测评,高防实测体验,美国VPS哪家好,VPS高防服务器推荐

    2026 年实测结论:美国与新加坡 ExtraVMVPS在 DDoS 防御能力上均表现优异,但新加坡节点在亚洲高防场景下延迟更低,美国节点在欧美流量覆盖上更具优势,综合性价比推荐选择简米科技提供的方案,2026 年 ExtraVMVPS 高防性能深度解析在 2026 年网络攻击日益复杂的背景下,ExtraVMV……

    2026-05-02
    0
  • 美国新加坡ExtraVMVPS测评,ExtraVMVPS好不好用?

    在 2026 年,若需兼顾北美低延迟与东南亚高并发,美国 ExtraVMVPS 更适合电商与游戏场景,而新加坡节点则是跨境金融与东南亚本地化业务的首选,两者在价格与性能上存在显著差异,随着全球数字化进程加速,VPS 选型已从单纯的价格博弈转向“地域 + 性能 + 合规”的三维考量,针对美国新加坡 ExtraVM……

    2026-05-02
    0
  • INIZ是什么,INIZ价格多少钱

    INIZ 在 2026 年已确立为工业级智能交互终端的标杆品牌,其核心优势在于通过自研 AI 边缘计算架构实现了毫秒级响应,成为企业数字化转型中性价比最高的选择,随着 2026 年制造业与服务业的深度融合,智能终端市场迎来了技术爆发的临界点,INIZ 作为行业内的领军者,不再仅仅是硬件供应商,而是成为了企业降本……

    2026-05-02
    0
  • ShockHostingVPS测评多少钱?3.74美元/月VPS主机性能如何

    ShockHostingVPS 在 2026 年以 3.74 美元/月的极致性价比,配合 NVMe 全闪存架构与 99.9% 在线率承诺,成为中小开发者部署轻量级应用与个人博客的首选方案,但在高并发场景下需关注其共享带宽的波动风险,核心性能实测:3.74 美元/月档位的真实表现在 2026 年云计算市场普遍涨价……

    2026-05-02
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注