本文,主要讲的是Linux利用tr命令轻松实现大小写转换,深圳培训linux希望通过本文的学习,大家都能实现利用tr命令轻松实现大小写转换。系统工程师有时候在系统维护的时候,需要将某个文件中的内容进行大小写的转换,利用tr命令轻松实现大小写转换就可以使工作变得轻松快捷。

Linux利用tr命令轻松实现大小写转换,系统工程师有时候在系统维护的时候,需要将某个文件中的内容进行大小写的转换。如系统工程师从网上下载了一个脚本文件。但是脚本文件的主人有个怪癖,对于一些备注的内容希望采用大写字母来描述。这可能跟某些工程师的阅读习惯不一致。为此需要将这些大写字符转换写小写字母。

当然,系统工程师可以手工的一个个进行修改。但是,显然操作起来很麻烦。为此系统工程师就会想,在Unix操作系统中是否提供了类似的工具,可以将大写字符转换为小写字母呢?确实,在Unix操作系统中提供了一个tr命令。这是一个强盗的字符转换命令,可以实现包括字符大小写转换在内地很多功能。

一、tr字符变换命令的基本格式格式要求。

在Unix操作系统中,针对整行的内容或者字段的命令有很多。相比之下,对一行中的字符进行操作的命令却比较少。这并不是说对字符操作不重要。而是因为tr这个字符变换命令就可以实现大部分字符处理的功能。这个命令的主要功能就是对字符串进行替换。如下图所示,笔者就是使用tr命令,先将一个文件中的字母a全部使用字母c来代替。然后第二个例子就是想文件中的小写字符全部转

这个命令的基本格式为tr 可选项 参数1 参数2 标准输入

这个命令的可选项虽然不是很多,但是都比较使用。通常搭配不同的可选项,可以实现不同的功能。另外在这个命令中,有一个比较特殊的部分,即标准输出。这是什么意思呢?而且在这个命令中没有文件名这个参数。那么如果将一个文件中的内容转换为英文字符呢?原来,这个命令只接受标准输入,而不接受文件名作为参数。为此如果要将某个文件中的内容进行大小写转换时,就需要按照上面的格式,先将文件中的内容读取出来,然后再利用管道符等工具将读取出来的内容传递给命令tr。然后再利用这个tr命令进行大小写转换或者进行简单的字符替换。在使用标准输入的时候,系统工程师即可以将标准输入放在这个命令的尾部。也可以使用管道符将标准输入放在命令的开头。笔者比较喜欢的是将标准输入放在命令开头。这两个方式都可以,没有什么差异。主要是看系统工程师的习惯而定。

二、实现大小写转换。

笔者上面提到的第二个案例就是将文件text.txt中内容进行大小写转换。将文件中所有小写字符转换成大写。笔者采用的命令是head –n

-2 text.txt | tr ‘[a-z]’

‘[A-Z]’。由于这个命令不支持文件名作为其参数,而支持标准输入。为此笔者就用head命令读取文件的前面几行。由于一些脚本文件往往是将这个脚本的功能说明放置在文件的开头,所以利用head命令来读取文本的前面几行是合理的。如此的话,就可以避免对整个脚本文件进行转换。要知道shell对大小写是敏感的。如果对一些命令和参数进行了一些不恰当的转换,有可能会出现莫名其妙的错误。为此只需要对脚本文件前面几行的注释部分进行大小写转换即可。

另外笔者在这个命令中用到一些具有特殊意义的元字符,如[]等等。在参数中如果遇到元字符的话,往往需要采用转义或者引用的机制,来告诉操作系统将这些字符当作普通字符来对待。一般情况下,系统工程师如果对他们不需要进行变量取值或者命令替换时,必须要使用单引号等引用或者转移字符。根据笔者上篇文章谈到过的双引号与单引号的相互保护作用,系统工程师还可以将命令中的表达式赋值给两个变量。然后将变量放置在双引号中,求其变量的值。

三、替换某些特定的字符。

在Unix操作系统中有一类比较特殊的文件,即lst文件。这个文件跟表格文件非常的类似,都是使用分隔符来分隔各个字段。默认情况下,这个分隔符没有固定的限制。如可以使用|符号来进行分隔,也可以使用空格符或者TAB键来进行分隔。也就算说,各位读者可以根据自己的需要来设置分隔符。不过这给文件共享带来了麻烦。因为一个文件按一定的分隔符号建立完成后,下次阅读时就只能够按照这个分隔符号。如果要采用其他的分隔符的话,就需要进行手工的调整。现在假设一个项目团队中的工程师A喜欢采用-分隔符,而另外一个工程师则喜欢采用|分隔符。那该怎么办呢?难道需要一个个去更换呢?

其实要实现这个转换的方式还是比较多的。如可以使用查找命令配合循环语句,将这个文件中的所有-符号都转换成|符号。不过利用循环语句与查找替换命令来实现这个功能的话有点复杂,并一定每个系统工程师都可以在短时间内写出这么复杂的语句。其实采用这个tr命令就可以轻松的将这件事情搞定。如利用

tr ‘-‘

‘|’即可。另外如果系统工程师想删除这个分隔符,也是可以的。只需要采用一个可选项-d,就可以将所有的-分隔符去掉。

另外如果采用-s可选项还可以压缩多个连续的字符。如可以压缩处理系统命令输出结果中的多个连续空格等等。如采用-c可选项可用于求表达式中字符的补集等等。而且最让人惊奇的是,这几个可选项结合使用,还可以实现一些比较复杂的功能。各位读者回去可以想一下,如果想删除某几个特定字符以外的一些字符,该入如何实现呢?笔者提醒一下,结合采用可选贤-c与-d可以实现这个需求。大家可以回去测试一下。

四、使用这个命令的注意事项。

1、众所周知,在Unix操作系统中,无论是文件名还是目录名,又或者是命令,对于大小写都是敏感的。这根微软操作系统有很大的不同。为此在这个命令中,需要用到两个参数。在这个参数中大小写也是敏感的。如tr

a c与tr A

c具有不同的含义。第一个命令是将小写的英文字符a利用小写的英文字符c来替换。而第二个命令表示利用小写的英文字符c去替换所有大写的英文字符A。为此笔者提醒各位系统工程师,在使用这个命令的时候第一个主要注意的就是参数的大小写一定要一致。否则的话,很难达到预计的效果。

2、两个字符串中长度需要相同。通常情况下采用这个命令会将第一个参数中的字符变换成第二个参数中的相应字符。也就是说,利用第二个参数中的第一个字符替换成第一个参数中的第一个字符,依此类推,其他字符也按照这个规则进行替换。此时,如果两个参数的长度不相等的话,那么会出现什么情况呢?如

tr abc

ab。此时第一个参数表达式将找不到对应的字符。即系统不知道将字符c利用什么字符来代替。为此在使用这个命令时,要确保两个参数的长度必须相等。

3、利用变量提高脚本程序的可用性。有时候系统工程师可能需要经常用到类似的转换功能。如使用这个命令可以简单的实现一些文件的加密作业。如可以预先将英文字符、数字等等建立一个一一对应的关系。然后写完内容之后,可以利用tr命令将文本转换为毫无意义的一个文件。如果不知道这种对应关系的话,那么其他用户即使得到这个文件也不能够破译出到底这个文本想表示什么内容。然后知道这个对应关系的用户,拿到这个文件后,再次反向执行一下这个命令(即将前后两个参数位置对调一下),就可以将文本的内容转换成原先的内容。如果建立好这个脚本之后,就可以重复利用这个脚不程序来对一些文件进行简单的加密。但是要提高其安全性的话,往往需要不断的对这个对应的规则进行调整。此时是否需要更改脚本文件呢?其实不用。因为这个tr命令支持变量。其实就是将命令中的两个参数分别赋值给两个变量。然后在执行命令的时候让系统分别对这两个变量求值,得出正确的对应规则。如此的话,当需要更改对应规则时,不需要改变这个脚本。只需要修改这两个变量的值即可。

收集于网络,仅供大家分享学习!

linux tr 变量大小写,使用tr命令快速达到大小写互换——深圳培训linux相关推荐

  1. linux日文乱码,解决日文压缩文件乱码问题的方法——深圳培训linux

    这篇文章, 有关日文压缩文件乱码的问题,自己用的是日文的linux系统,昨天从同事那儿收了个压缩文件,结果解压之后文件名都乱吗了(内容正常显示).网上 google了以下发现是因为windows下默认 ...

  2. linux删除除非某某文件,find命令查找比某个文件新或...-linux下删除某一时间段的文件-scp命令在两台服务器直接进行文件传输的方法_169IT.COM...

    find命令查找比某个文件新或旧的文件,有需要的朋友可以参考下. 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项. 它的一般形式为: 代码如下: newest_f ...

  3. linux 上plsql命令_在 Linux 上压缩文件:zip 命令的各种变体及用法 | Linux 中国

    除了压缩和解压缩文件外,你还可以使用 zip 命令执行许多有趣的操作.这是一些其他的 zip 选项以及它们如何提供帮助.-- Sandra Henry-stocker 为了节省一些磁盘空间并将文件打包 ...

  4. linux下u盘网卡驱动,通过u盘给linux安装网卡驱动的做法——深圳培训linux

    简单方便使用,随手可得. 简洁快速,只需一个u盘即可为linux系统安装网卡驱动. 简便快捷的方法都是受大众喜欢的,这样可以快速的简单的解决问题. 通过u盘给linux系统安装网卡驱动的方法,这是一个 ...

  5. linux 时间 环境变量,Linux环境变量的修改(永久,暂时)以及修改ls显示的时间格式...

    本文转自:http://blog.sina.com.cn/s/blog_8e21864f01014u9h.html Linux修改环境变量,很简单但很重要 一.Linux的变量种类 按变量的生存周期来 ...

  6. Linux Shell CentOS 写一个输出命令 支持颜色

    文章目录 Linux Shell CentOS 写一个输出命令 支持颜色 相关阅读 1.代码 2.演示 Linux Shell CentOS 写一个输出命令 支持颜色 相关阅读 Linux Shell ...

  7. linux环境变量设置 profile,Linux 环境变量 设置 etc profile

    一.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.永久的:需要修改配置文件,变量永久生效. 2.临时的:使用export命令声明即可,变量在关闭shell时失效. 二. ...

  8. linux环境变量配置的方法,Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...

  9. linux 设置开机自启动服务命令,linux开机自启动服务优化设置命令

    1.设置成英文字符,避免出现乱码 [root@xuegod62 ~]# LANG=en 2.两种配置linux开机自启动服务命令: 1) [root@xuegod62 ~]# ntsysv 2) [r ...

最新文章

  1. Linux shell 脚本报错:/bin/bash^M: bad interpreter: No such file or directory
  2. JSON 基础解释.
  3. python中类方法与实例方法的区别-Python实例方法、类方法、静态方法的区别与作用详解...
  4. python 事务操作_Python实现完整的事务操作示例
  5. mysql的主键有什么作用_mysql设置主键有什么用
  6. plsq卸载 删除注册表、_win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结...
  7. 服务器开发中网络数据分析与故障排查经验漫谈
  8. 上传源文件至虚拟服务器,C# 通过WebService上传视频文件到服务器虚拟机下源码...
  9. 优动漫PAINT核心功能介绍
  10. CSS 背景附着 background-attachment属性
  11. oracle 删除中文表,oracle - 删除全局临时表 - SO中文参考 - www.soinside.com
  12. superset报错
  13. mysql 5.7.15发布
  14. tp3.2 缓存cache
  15. Excel 如何解决下标越界问题
  16. onenote标注pdf笔记_无限接近纸质笔记:学生党的 OneNote 使用心得
  17. linux unzip 包括目录,Linux 命令(目录管理 - zip/unzip)
  18. 会员管理系统(一)--页面登陆与注册
  19. python windows10 安装 tensorrt、torch2trt
  20. 跨境软体家具垂直供应链平台“品划算”获银河系千万级天使轮融资

热门文章

  1. 网页制作中最有用的免费Ajax和JavaScript代码库
  2. javascript定时器及Date对象
  3. 是什么管脚分配_FPGA是什么?里面有什么?能做什么?
  4. 卷积核的数量是不是越多越好?-分类0,5
  5. [Machine Learning]--无监督学习
  6. 4. 分类的线性模型
  7. everythingtoolbar.dll”或它的一个依赖项。_ASP.NET Core依赖注入最佳实践、提示和技巧...
  8. 【数理知识】co-inner-outer factorizations
  9. 1.6 开发集和测试集的大小-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  10. STM32 电机教程 25 - ST MCLIB实战之开环svpwm控制