tr [OPTION]… SET1 [SET2]
选项:
-c –C --complement:取字符集的补集
-d --delete:删除所有属于第一字符集的字符
-s --squeeze-repeats:把连续重复的字符以单独一个字符表示
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
[:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制(非打印)字符
[:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符
[:punct:]:标点符号 [:space:]:空白字符 [:upper:]:大写字母
[:xdigit:]:十六进制字符
实验1:将/etc/issue文件中的内容转为大写后保存到 /tmp/issue.out文件中
[root@oracle etc]# cat /etc/issue | tr [a-z] [A-Z] > /tmp/issue.out
[root@oracle etc]# cat /tmp/issue.out
CENTOS RELEASE 6.8 (FINAL)
KERNEL \R ON AN \M
实验2:将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
[root@oracle home]# who
root tty1 2020-04-19 09:49
root pts/1 2020-05-04 11:58 (192.168.128.5)
[root@oracle home]# who | tr [a-z] [A-Z] > /tmp/who.out
[root@oracle home]# cat /tmp/who.out
ROOT TTY1 2020-04-19 09:49
ROOT PTS/1 2020-05-04 11:58 (192.168.128.5)
实验3:
一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,The system version is here,please help me to check
it ,thanks! 操作系统版本信息
-bash-4.1$ mail -s "help" root <<END
> Hello, I am $USER . System version is here please check it:
> `cat /etc/centos-release`
> END
-bash-4.1$ exit
logout
You have new mail in /var/spool/mail/root
[root@oracle ~]# mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/root": 2 messages 1 new
1 jack@oracle.localdom Mon May 4 09:22 20/667 "help"
>N 2 jack@oracle.localdom Mon May 4 09:26 19/657 "help"
& 2
Message 2:
From jack@oracle.localdomain Mon May 4 09:26:49 2020
Return-Path: <jack@oracle.localdomain>
X-Original-To: root
Delivered-To: root@oracle.localdomain
Date: Mon, 04 May 2020 14:26:49 +0800
To: root@oracle.localdomain
Subject: help
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: jack@oracle.localdomain
Status: R
Hello, I am jack . System version is here please check it:
CentOS release 6.8 (Final)
实验4:将/root/下文件列表,显示成一行,并文件名之间用空格隔开
[root@oracle ~]# ls /root | tr -t "\n" " "
1.sh 2.sh 3 abc anaconda-ks.cfg Desktop Documents Downloads err.log hen.sh install.log install.log.syslog kafkatool_64bit.exe Music out.log Pictures Public script Templates test test1 testyes.sh Videos XshellPlus6_wm.exe [root@oracle ~]#
实验5:计算1+2+3+…+99+100的总和
多种方法,如果利用seq命令可以直接得到1~100的数字序列,通过插入符号+可以构建算式
[root@oracle ~]# seq 1 100
1
2
3
...省略...
100
[root@oracle ~]# seq -s + 1 100 | bc
5050
实验6:删除Windows文本文件中的回车字符 ,即“\r”
vi 编辑文件 test 并保存为dos格式 set fileformat=dos
[root@oracle ~]# file test
test: ASCII text, with CRLF line terminators
删除Windows文本文件中的回车字符 ,即“\r”
[root@oracle ~]# cat test | tr -d '\r' > new
实验7:处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格
[root@oracle ~]# echo 'xt.,l 1 jr#4mn 2 c*/fe 3 uz 4' | tr -cd [:space:][:digit:]
1 4 2 3 4
实验8:将PATH变量每个目录显示在独立的一行
[root@oracle ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oracle ~]# echo $PATH | tr -t ":" "\n"
/usr/lib64/qt-3.3/bin
/usr/local/sbin
/usr/local/bin
/sbin
/bin
/usr/sbin
/usr/bin
/root/bin
实验9: 将指定文件中0-9分别替代成a-j
[root@oracle ~]# seq 0 9 | tr -t "0-9" "a-j"
a
b
c
d
e
f
g
h
i
j
实验10:将文件/etc/centos-release中每个单词(由字母组成)显示在独立一行,并无空行
[root@oracle ~]# cat /etc/centos-release
CentOS release 6.8 (Final)
[root@oracle ~]# cat /etc/centos-release | tr -t " " "\n"
CentOS
release
6.8
(Final)
``