[转帖]Linux命令之tr命令

linux,命令,tr · 浏览次数 : 0

小编点评

**命令介绍** `tr` 命令用于转换或删除文件中的字符。它从标准输入设备读取数据,执行转换(或者压缩、删除)处理,将结果输出到标准输出设备。 **使用示例** **1、将文件1.txt字符转换为全部为大写** ```bash cat 1.txt | tr a-z A-Z THE STRING IS USED TO DESCRIBE THE TR COMMCAND! WHO ARE YOU? ``` **2、字符全部转换为小写** ```bash cat 1.txt | tr A-Z a-z the string is used to describe the tr commcand! who are you? ``` **3、删除数字** ```bash cat 2.txt | tr -d 0-9 This is Number . This is Number . ``` **4、生成包含大小写字母、数字、特殊字符的字符串** ```bash < /dev/urandom tr -dc a-zA-Z0-9-/ |head -c ${1:-12};echo L/f5Fwq6rFxh 5 ``` **5、删除重复的0** ```bash cat 2.txt | tr -s 0 This is Number 9 . This is Number 10 . ``` **6、把路径变量中的冒号\":“,替换成换行符”\\"** ```bash echo $PATH |tr -s “:” “\” /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /root/bin ``` **7、删除换行符** ```bash cat 2.txt |tr -d “\” ``` **8、删除Windows文件“造成”的’^M’字符** ```bash cat file | tr -d “\\r” ``` **9、转换指定字符串(相同长度)** ```bash cat 1.txt |tr “Who” “Why” The string is used ty describe the tr cymmcand! Why are yyu? ``` **使用语法及参数说明** * `tr [OPTION]… SET1 [SET2]`:用于指定多个字符集进行转换或删除。 * `-c, --complement`:反选设定字符。 * `-d, --delete`:删除指令字符。 * `-s, --squeeze-repeats`:缩减连续重复的字符成指定的单个字符。 * `-t, --truncate-set1`:削减 SET1 指定范围,使之与 SET2 设定长度相等。 * `[:alnum:]` :所有字母字符与数字[:alpha:] :所有字母字符[:blank:] :所有水平空格[:cntrl:] :所有控制字符[:digit:] :所有数字[:graph:] :所有可打印的字符(不包含空格符)[:lower:] :所有小写字母[:print:] :所有可打印的字符(包含空格符)[:punct:] :所有标点字符[:space:] :所有水平与垂直空格符[:upper:] :所有大写字母[:xdigit:] :所有 16 进位制的数字[=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

正文

一、命令介绍

  tr 命令用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,执行转换(或者压缩、删除)处理,将结果输出到标准输出设备。

二、使用示例

0、示例文件

[root@test1 test]# cat 1.txt
The string is used to describe the tr commcand!
Who are you?
[root@test1 test]# cat 2.txt
This is Number 9 .
This is Number 100 .

1、将文件1.txt字符转换全部为大写

[root@test1 test]# cat 1.txt | tr a-z A-Z
THE STRING IS USED TO DESCRIBE THE TR COMMCAND!
WHO ARE YOU?
[root@test1 test]# cat 1.txt |tr [:lower:] [:upper:]
THE STRING IS USED TO DESCRIBE THE TR COMMCAND!
WHO ARE YOU?

2、字符全部转换为小写

[root@test1 test]# cat 1.txt | tr A-Z a-z
the string is used to describe the tr commcand!
who are you?
[root@test1 test]# cat 1.txt |tr [:upper:] [:lower:]
the string is used to describe the tr commcand!
who are you?

3、删除数字

[root@test1 test]# cat 2.txt |tr -d 0-9
This is Number .
This is Number .
[root@test1 test]# cat 2.txt |tr -d 1-9
This is Number .
This is Number 00 .

4、生成包含大小写字母、数字、特殊字符的字符串

[root@test1 test]# < /dev/urandom tr -dc a-zA-Z0-9-/ |head -c ${1:-12};echo
L/f5Fwq6rFxh

5、删除重复的0

[root@test1 test]# cat 2.txt |tr -s 0
This is Number 9 .
This is Number 10 .

6、把路径变量中的冒号":“,替换成换行符”\n"

[root@test1 test]# echo $PATH |tr -s “:” “\n”
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin

7、删除换行符

[root@test1 test]# cat 2.txt |tr -d “\n”
This iss Number 9 .This is Number 100 .[root@test1 test]#

8、删除Windows文件“造成”的’^M’字符

[root@test1 test]# cat file | tr -d “\r”

9、转换指定字符串(相同长度)

[root@test1 test]# cat 1.txt |tr “Who” “Why”
The string is used ty describe the tr cymmcand!
Why are yyu?

三、使用语法及参数说明

1、使用语法

  • 用法:tr [OPTION]… SET1 [SET2]
  • 用法:tr [参数选项] 字符集1 [字符集2]
    • 字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
    • 字符集2:指定要转换成的目标字符集。

2、参数说明

  • -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
  • -d, --delete:删除指令字符
  • -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
  • -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
  • –help:显示程序用法信息
  • –version:显示程序本身的版本信息

3、字符集合

  • \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
  • \ 反斜杠
  • \a Ctrl-G 铃声
  • \b Ctrl-H 退格符
  • \f Ctrl-L 走行换页
  • \n Ctrl-J 新行
  • \r Ctrl-M 回车
  • \t Ctrl-I tab键
  • \v Ctrl-X 水平制表符
  • CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。
  • [CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
  • [CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)
  • [:alnum:] :所有字母字符与数字
  • [:alpha:] :所有字母字符
  • [:blank:] :所有水平空格
  • [:cntrl:] :所有控制字符
  • [:digit:] :所有数字
  • [:graph:] :所有可打印的字符(不包含空格符)
  • [:lower:] :所有小写字母
  • [:print:] :所有可打印的字符(包含空格符)
  • [:punct:] :所有标点字符
  • [:space:] :所有水平与垂直空格符
  • [:upper:] :所有大写字母
  • [:xdigit:] :所有 16 进位制的数字
  • [=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)
文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux进阶新增用户26354 人正在系统学习中

与[转帖]Linux命令之tr命令相似的内容:

[转帖]Linux命令之tr命令

一、命令介绍 tr 命令用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,执行转换(或者压缩、删除)处理,将结果输出到标准输出设备。 二、使用示例 0、示例文件 [root@test1 test]# cat 1.txt The string is used to describe the

[转帖]Linux命令之strace命令

一、命令简介 strace是一个有用的诊断、指导和调试工具。系统管理员、诊断专家和故障解决人员将发现,对于解决源代码不易获得的程序的问题,这是非常宝贵的,因为它们不需要重新编译以跟踪它们。学生、黑客和过分好奇的人会发现,通过跟踪甚至是普通程序,可以了解到大量关于系统及其系统调用的信息。程序员会发现,

[转帖]Linux命令之getfacl和setfacl命令

一、命令简介 getfacl命令来自于英文词组”get file access control list“的缩写,其功能是用于显示文件或目录的ACL策略。对指定的文件或目录进行精准的权限控制,FACL是不二之选。对于每个文件,getfacl显示文件名、所有者、组和访问控制列表(ACL)。如果目录具有

[转帖]Linux命令之systemctl命令

一、systemctl命令简介 CentOS 5使用SysV init;CentOS 6使用Upstart,CentOS 7使用Systemd管理守护进程。centos7采用 systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。独立服务的服务启动脚本都在目录 /usr/lib

[转帖]Linux命令之ulimit命令

一、命令简介 ulimit是一个计算机命令,用于shell启动进程所占用的资源,可用于修改系统资源限制。使用ulimit命令用于临时修改资源限制,如果需要永久修改需要将设置写入配置文件/etc/security/limits.conf。 二、使用示例 1、查看当前资源限制设置 [root@test1

[转帖]Linux网络命令之 `brctl`

文章目录 1 网桥的概念2 管理网桥的命令3 举例 1 网桥的概念 摘自百度百科: 网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。 网桥是一种对帧进行转发的技术,根据 MAC 分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。 网桥也叫桥接器,是连接两个局域网的一种存

[转帖]linux之iftop命令

https://rumenz.com/rumenbiji/linux-iftop.html Linux安装iftop > yum install iftop -y > iftop 界面如下 界面参数说明 =>代表发送数据 <=代表接收数据 TX:发送流量 RX:接收流量 TOTAL:总流量 Cumm

[转帖]Linux工具之nethogs命令

一、nethogs命令简介 NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况。这样就很容易找出哪个程序跑

[转帖]Linux之Shell 脚本执行三种方式

什么是Shell? Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash ShellShell也是一门编程语言<解释型的编程语言>,即shell脚本一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支

[转帖]Linux之fstab文件详解

https://blog.yelvlab.cn/archives/592/ fstab文件是干什么用的: /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。当系