tr命令的使用及相关练习题

tr命令相关选项:

tr-转换或删除字符

常用选项:

-c:取字符集的补集

-d:删除匹配的指定字符集中的字符

-s:把连续重复的字符以单独一个字符表示

-t:先删除第一字符集较第二字符集多出的字符

\\:反斜杠

\a:响铃

\b:退格

\n:换行

\r:回车

[:alnum:] :所有的字母和数字
                                                 [:alpha:] :所有的字母
                                                 [:blank:] :所有呈水平排列的空白字符
                                                 [:cntrl:] :所有的控制字符
                                                 [:digit:]: 所有的数字
                                                 [:graph:] :所有的可打印字符,不包括空格
                                                 [:lower:] :所有的小写字母
                                                 [:print:] :所有的可打印字符,包括空格
                                                 [:punct:] :所有的标点字符
                                                 [:space:] :所有呈水平或垂直排列的空白字符
                                                 [:upper:] :所有的大写字母

tr相关练习题:

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

   [[email protected] test]# cat /etc/issue
   CentOS release 6.8 (Final)
   Kernel \r on an \m
   
   Mage Education Learning Services
   http://www.magedu.com
                    
   [[email protected] test]# cat /etc/issue|tr ‘a-z‘ ‘A-Z‘ > /tmp/issue.out
   [[email protected] test]# cat /tmp/issue.out 
   CENTOS RELEASE 6.8 (FINAL)
   KERNEL \R ON AN \M
   MAGE EDUCATION LEARNING SERVICES
   HTTP://WWW.MAGEDU.COM
                    
   [[email protected] test]#

2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

   [[email protected] test]# who        
   root     pts/0        2016-07-31 17:08 (10.1.250.58)
   root     pts/1        2016-07-31 17:54 (10.1.250.58)
   [[email protected] test]# who|tr ‘a-z‘ ‘A-Z‘ > /tmp/who.out
   [[email protected] test]# cat /tmp/who.out 
   ROOT     PTS/0        2016-07-31 17:08 (10.1.250.58)
   ROOT     PTS/1        2016-07-31 17:54 (10.1.250.58)
   [[email protected] test]#

3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:

Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!

操作系统版本信息

user send message:
    [[email protected] ~]$ echo -e "Hello, I am `whoami`,the system version is `uname -a`,pleasehelp me to check it ,thanks\!"|mail -s ‘help‘ root
    [[email protected] ~]$
root receive:
    [[email protected] ~]# mail
    Heirloom Mail version 12.4 7/29/08.  Type ? for help.
    "/var/spool/mail/root": 2 messages 1 new
        1 [email protected]  Sun Jul 31 19:52  19/801   "help"
    >N  2 [email protected]  Sun Jul 31 20:50  18/790   "help"
    & 
    Message  2:
    From [email protected]  Sun Jul 31 20:50:18 2016
    Return-Path: <[email protected]>
    X-Original-To: root
    Delivered-To: [email protected]
    Date: Sun, 31 Jul 2016 20:50:18 +0800
    To: [email protected]
    Subject: help
    User-Agent: Heirloom mailx 12.4 7/29/08
    Content-Type: text/plain; charset=us-ascii
    From: [email protected]
    Status: R
    
    Hello, I am doodle,the system version is Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux,pleasehelp me to check it ,thanks\!

4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开

    [[email protected] ~]# ls /root/ | tr [[:space:]] ‘ ‘
    a.log anaconda-ks.cfg createfile.sh Desktop Documents Downloads file1 filetype2.sh filetype.sh idsum.sh install.log install.log.syslog Music ntfs-3g_ntfsprogs-2016.2.22 ntfs-3g_ntfsprogs-2016.2.22.tgz Pictures Public [email protected] sum2.sh sum.sh sysinfo.sh Templates test useradd.sh usertype.sh Videos VMwareTools-10.0.0-2977863.tar.gz vmware-tools-distrib [[email protected] ~]#

5、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

    [[email protected] ~]# touch file1
    [[email protected] ~]# echo "1 2 3 4 5 6 7 8 9 10" > file1
    [[email protected] ~]# cat file1 | tr ‘ ‘ ‘+‘|bc
    55
    [[email protected] ~]#

6、删除Windows文本文件中的‘^M‘字符

    [[email protected] Desktop]# cat -A test.txt         
    abc^M$
    def^M$
    ecf^M$
    [[email protected] Desktop]# cat -A test.txt |tr -d ‘^M‘
    abc$
    def$
    ecf$
    [[email protected] Desktop]#

7、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

    [[email protected] ~]$ echo "xt.,l 1 jr#rootmn2 c*/fe3 uz4" | tr ‘[[:punct:]]‘\    
    >  ‘ ‘ | tr ‘[[:alpha:]]‘ ‘ ‘
          1          2      3   4
    [[email protected] ~]$

8、将PATH变量每个目录显示在独立的一行

    [[email protected] ~]$ echo $PATH |tr -d ‘:‘|tr ‘/‘ ‘\n‘    
    
    usr
    lib64
    qt-3.3
    bin
    usr
    local
    bin
    bin
    usr
    bin
    usr
    local
    sbin
    usr
    sbin
    sbin
    home
    doodle
    bin
    [[email protected] ~]$

9、删除指定文件的空行

   [[email protected] ~]# cat test.sh 
   qqqqqqqqqqq
        
   wwwwwwwwwwwwwwwww
   eeeeeeeeeeeee
        
   rrrrrrrrrrrrrr
        
   tttttttttttttt
   [[email protected] ~]# cat test.sh |tr -s ‘\n‘
   qqqqqqqqqqq
   wwwwwwwwwwwwwwwww
   eeeeeeeeeeeee
   rrrrrrrrrrrrrr
   tttttttttttttt
   [[email protected] ~]#

10、将文件中每个单词(字母)显示在独立的一行,并无空行

        [[email protected] ~]# cat test 
        No matter 
        how far you may
        
         fly, never forget where you come from.
        
        [[email protected] ~]# cat test | tr ‘[[:punct:]]‘ ‘\n‘|tr ‘[[:space:]]‘ ‘\n‘|tr -s ‘\n‘
        No
        matter
        how
        far
        you
        may
        fly
        never
        forget
        where
        you
        come
        from
        [[email protected] ~]#
时间: 2024-08-05 07:06:45

tr命令的使用及相关练习题的相关文章

SHELL脚本--tr命令用法和特性全解

html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary { display: block } audio,canvas,progress,video { display: inline-block; vertical-align: baseline } audio:not([co

Linux下使用ps命令来查看Oracle相关的进程

Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [[email protected] www.linuxidc.com ~]$ ps -ef | grep tnslsnr oracle    1999 29986  0 09:47 pts/2    00:00:00 grep tnslsnr oracle    3647     1  0 Jul03 ?        00:00:34 /u01

shell学习之tr命令

tr命令不接受指定的文件参数,而只是对标准输入进行翻译, tr是translate的简写,亦即翻译,需要注意的是,它不能翻译句子,只能翻译单个字符. 首先,定义变量:     [[email protected]]#A=1,,2,,,3,,,4,,,5 下面以示例对该命令以及其常用选项进行介绍. 示例: 1.  无选项设置情况     [[email protected]]# echo $A | tr  ',' ' '         1 2   3   4   5     [[email pr

grep 命令详解及相关事例

一.匹配字符 .    匹配任意单个字符 [ ]  匹配指定范围内的任意字符 [^]  匹配飞指定范围内的任意字符 [:alpha:] 字母字符 [:lower:] 小写字母字符 [:upper:] 大写字母字符 [:digit:] 数字 [:alnum:] 字母数字字符 [:space:] 空白字符(禁止打印),如回车符.换行符.竖直制表符和换页符 [:punct:] 标点字符 [:cntrl:] 控制字符(禁止打印) [:print:] 可打印字符 使用时一般使用两个中括号,具体会在下面的例

Linux:tr命令详解

tr tr命令可以对来自标准输入的字符进行替换.压缩和删除 语法 tr(选项)(SET1 SET2) 选项 -c或--complerment:取代所有不属于第一字符集的字符: -d或--delete:删除所有属于第一字符集的字符: -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示: -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符. 参数 SET1:指定要转换或删除的原字符集. 当执行转换操作时,必须使用参数"SET2"指定转换的

Linux 重定向、管道和 tr命令总给

描述:        标准输出(standard output)指的是命令执行所回传的正确的信息 标准输出(standard error output)指的是命令执行失败后所回传的错误信息 Linux 给程序提供三种I/O 设备 标准输入(STDIN )- 0 默认接受来自键盘的输入,使用< 或者 << 标准输出(STDOUT )- 1 默认输出到终端窗口,默认是屏幕,使用> 或者 >> 标准错误输出(STDERR )- 2 默认输出到终端窗口,默认是屏幕,使用2>

linux系统之tr命令

tr命令介绍以及使用 目录: 1.tr命令的介绍 2.tr命令格式 3tr命令使用项. 4.常见的tr命令的使用 tr命令介绍 从标准输入中翻译.压缩和/或删除字符,写入标准输出,说白了就转换和删除字符. tr命令格式 tr 参数 test1 test2 tr命令的使用项 -c, -C, –complement 用集合1中的字符串替换,要求字符集为ASCII. -d, –delete 删除集合1中的字符而不是转换 -s, –squeeze-repeats 删除所有重复出现字符序列,只保留第一个:

Linux命令篇之wc命令和tr命令

wc 统计文件里面有多少单词,多少行,多少字符. wc语法 [[email protected]~]# wc [-lwm] 选项与参数: -l  :仅列出行: -w  :仅列出多少字(英文单字): -m  :多少字符: 默认使用wc统计/etc/passwd #wc /etc/passwd 40   451719 /etc/passwd 40是行数,45是单词数,1719是字节数 wc的命令比较简单使用,每个参数使用如下: #wc -l /etc/passwd   #统计行数,在对记录数时,很常

linux tr命令详解

通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复字符.这就是所有 tr 所能够做的.     tr用来从标准输入中通过替换或删除操作进行字符转换.tr主要用于删除文件中控制字符或进行字符转换.使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换.tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始.    带