乐趣区

关于linux:在Linux命令行内的大小写转换

在编辑文本时大小写经常是须要留神的中央,大小写的转换是很干燥而繁琐的工作,所幸,Linux 提供了很多能让这份工作变得容易的命令。接下来让咱们看看都有哪些实现大小写转换的命令。

tr 命令

tr (translate) 是能使用在命令行或者脚本上的最简略的大小写转换命令之一。例如如果你想要让一串字符串全副是大写字母,你能够用如下所示的命令实现这个内容:

$ echo hello alvin | tr [:lower:] [:upper:]
HELLO ALVIN

以下为该命令利用在脚本上的例子,写入文件 depts 的内容全会是大写的格局:

$ echo "Enter department name:" | tr [:lower:] [:upper:] >> depts

下面命令的程序换为 [:upper:] [:lower:] 将会失去相同的后果,所有输出的字母都将变为小写字母:

$ echo "Enter department name:" | tr [:upper:] [:lower:] >> depts

你能够用 A-Z a-z 代替 [:upper:] [:lower:] 来达到雷同的成果:

$ echo "Enter department name:" | tr a-z A-Z >> depts

awk 命令

awk 命令用 touppertolower 这两个选项实现大小写转换。上文所述的对脚本进行的大小写转换能够用这个命令以如下的形式实现:

$ echo "Enter department name:" | awk '{print toupper($0)}' >> depts

以上是转换成大写字母,上面为转换为小写字母的办法:

$ echo "Enter department name:" | awk '{print tolower($0)}' >> depts

sed 命令

sed(stream editor)命令同样可能很好实现大小写转换的工作,上面的命令也可能达到后面两个命令的成果:

$ echo "Enter department name:" | sed 's/[a-z]/\U&/g' >> depts

要想实现相同的转换,只需把下面那条命令中的 U 换成 L[a-z] 换成 [A-Z] 即可:

$ echo "Enter department name:" | sed 's/[A-Z]/\L&/g' >> depts

批改文件里文本内容的大小写格局

awksed 命令都能够实现对整个文档内容的大小写转换工作,所以如果你须要把整个文档内容转换成小写,你能够用如下命令以小写的模式输入某文件的内容至屏幕上:

$ awk '{print tolower($0)}' depts

其后果如下:

enter department name:
finance
billing
bookkeeping

留神此后果只是将打印在屏幕的内容转换为了小写,自身文档内的大写字母并无变动,应用 cat depts 命令查看便可晓得。如果你想要的确地批改文档内容的大小写,你能够用如下命令实现:

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

sed 命令能够实现和 awk 雷同的性能,只是用法上略有不同,其应用办法如下:

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

只让首字母大写

只让一串字符串中各个单词的首字母大写,能够用如下的命令实现:

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

下面这一条命令能够只让首字母大写而其余字母不变。

确保只有首字母大写

当你须要对一大批文本进行这个操作的时候,比方要以正确的格局显示一大批人的姓名时,须要做的事件会变得略微难一些。这里提供两种办法实现这个工作:

sed 命令实现

为了确保后果正确,须要更加简单的 sed 命令格局:

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

用 python 代码实现

如果你的 Linux 上装置了 python,你能够用如下的命令实现对文本的首字母大写格式化,python 代码比上文的 sed 命令的正则式要容易了解多了:

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

Linux 外面有许多用于大小写转换的命令,哪一个用着更好取决于你是解决一串字符还是整个文件。心愿本文介绍的各种命令能对你有所帮忙,如果你对这些命令有什么疑难,欢送留言探讨!


最初,最近很多小伙伴找我要 Linux 学习路线图 ,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!

收费送给大家,只求大家金指给我点个赞!

电子书 | Linux 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 反对搜寻的资源网站
退出移动版