Linux----tr命令详细使用方法

这篇具有很好参考价值的文章主要介绍了Linux----tr命令详细使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【原文链接】Linux----tr命令详细使用方法

一、tr命令使用方法

1.1 tr命令的作用

tr命令用于字符转换、替换和删除,主要用于删除文件中的控制符或进行字符串转换等。

1.2 tr命令格式

# 用法1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理
commands | tr ‘string1’ ‘string2’
# 用法2:对来自于filename文件中的内容进行字符替换。
tr 'string1' 'string2' < filename
# 用法3:对来自filename文件的内容查询string1并进行相应的处理,比如删除等。
tr option 'string1' <filename

1.3 tr命令常用的选项

  • -d: 删除字符串
  • -s: 删除所有重复出现字符序列,只保留第一个,即将重复出现字符串压缩为一个字符串

1.4 常用的匹配字符串

字符串 含义
a-z或[:lower:] 匹配所有小写字母
A-Z或[:upper:] 匹配所有大写字母
0-9或[:digit:] 匹配所有的数字
[:alnum:] 匹配所有字母和数字
[:alpha:] 匹配所有字母
[:blank:] 所有水平空白
[:punct:] 匹配所有标点符号
[:space:] 皮牌所有水平或垂直的空格
[:cntrl:] 匹配所有控制字符

二、tr命令常用实例

2.1 如何查看文本中的控制字符

比如这里准备一个文件,demo1.conf,内容如下

name
domain
ip
area
user
password
role

vi demo1.conf 编辑文件,然后执行如下命令即可查看文件中的控制字符了

:set list

如下图所示,可以看到每行最后都有一个$符号,这就是回车符
linux tr,Linux,linux,运维,服务器

2.2 将所有小写字母转换为大写字母

首相这准备一个test.txt文件

cat /etc/passwd > test.txt

内容如下:

[root@jiayi-centos-01 opt]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
isrc-admin:x:1000:1000:isrc-admin:/home/isrc-admin:/bin/bash
unbound:x:998:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
gluster:x:997:995:GlusterFS daemons:/run/gluster:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
honghua:x:1001:1001::/home/honghua:/bin/bash
[root@jiayi-centos-01 opt]#

执行下面命令即可将test.txt中小写替换为答谢,并写入demo.txt

[root@jiayi-centos-01 opt]# tr 'a-z' 'A-Z'<test.txt > demo.txt
[root@jiayi-centos-01 opt]# cat demo.txt
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC
SHUTDOWN:X:6:0:SHUTDOWN:/SBIN:/SBIN/SHUTDOWN
HALT:X:7:0:HALT:/SBIN:/SBIN/HALT
MAIL:X:8:12:MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN
OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN
GAMES:X:12:100:GAMES:/USR/GAMES:/SBIN/NOLOGIN
FTP:X:14:50:FTP USER:/VAR/FTP:/SBIN/NOLOGIN
NOBODY:X:99:99:NOBODY:/:/SBIN/NOLOGIN
SYSTEMD-NETWORK:X:192:192:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
DBUS:X:81:81:SYSTEM MESSAGE BUS:/:/SBIN/NOLOGIN
POLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGIN
SSHD:X:74:74:PRIVILEGE-SEPARATED SSH:/VAR/EMPTY/SSHD:/SBIN/NOLOGIN
POSTFIX:X:89:89::/VAR/SPOOL/POSTFIX:/SBIN/NOLOGIN
ISRC-ADMIN:X:1000:1000:ISRC-ADMIN:/HOME/ISRC-ADMIN:/BIN/BASH
UNBOUND:X:998:996:UNBOUND DNS RESOLVER:/ETC/UNBOUND:/SBIN/NOLOGIN
RPC:X:32:32:RPCBIND DAEMON:/VAR/LIB/RPCBIND:/SBIN/NOLOGIN
QEMU:X:107:107:QEMU USER:/:/SBIN/NOLOGIN
GLUSTER:X:997:995:GLUSTERFS DAEMONS:/RUN/GLUSTER:/SBIN/NOLOGIN
RADVD:X:75:75:RADVD USER:/:/SBIN/NOLOGIN
SASLAUTH:X:996:76:SASLAUTHD USER:/RUN/SASLAUTHD:/SBIN/NOLOGIN
TSS:X:59:59:ACCOUNT USED BY THE TROUSERS PACKAGE TO SANDBOX THE TCSD DAEMON:/DEV/NULL:/SBIN/NOLOGIN
RPCUSER:X:29:29:RPC SERVICE USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
HONGHUA:X:1001:1001::/HOME/HONGHUA:/BIN/BASH
[root@jiayi-centos-01 opt]#

2.3 将文件中的数字替换为&符号

执行如下命令即可将test.txt中的所有数字转换为&符号并写入demo.txt

[root@jiayi-centos-01 opt]# tr '0-9' '&'<test.txt > demo.txt
[root@jiayi-centos-01 opt]# cat demo.txt
root:x:&:&:root:/root:/bin/bash
bin:x:&:&:bin:/bin:/sbin/nologin
daemon:x:&:&:daemon:/sbin:/sbin/nologin
adm:x:&:&:adm:/var/adm:/sbin/nologin
lp:x:&:&:lp:/var/spool/lpd:/sbin/nologin
sync:x:&:&:sync:/sbin:/bin/sync
shutdown:x:&:&:shutdown:/sbin:/sbin/shutdown
halt:x:&:&:halt:/sbin:/sbin/halt
mail:x:&:&&:mail:/var/spool/mail:/sbin/nologin
operator:x:&&:&:operator:/root:/sbin/nologin
games:x:&&:&&&:games:/usr/games:/sbin/nologin
ftp:x:&&:&&:FTP User:/var/ftp:/sbin/nologin
nobody:x:&&:&&:Nobody:/:/sbin/nologin
systemd-network:x:&&&:&&&:systemd Network Management:/:/sbin/nologin
dbus:x:&&:&&:System message bus:/:/sbin/nologin
polkitd:x:&&&:&&&:User for polkitd:/:/sbin/nologin
sshd:x:&&:&&:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:&&:&&::/var/spool/postfix:/sbin/nologin
isrc-admin:x:&&&&:&&&&:isrc-admin:/home/isrc-admin:/bin/bash
unbound:x:&&&:&&&:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc:x:&&:&&:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
qemu:x:&&&:&&&:qemu user:/:/sbin/nologin
gluster:x:&&&:&&&:GlusterFS daemons:/run/gluster:/sbin/nologin
radvd:x:&&:&&:radvd user:/:/sbin/nologin
saslauth:x:&&&:&&:Saslauthd user:/run/saslauthd:/sbin/nologin
tss:x:&&:&&:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
rpcuser:x:&&:&&:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:&&&&&:&&&&&:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
honghua:x:&&&&:&&&&::/home/honghua:/bin/bash
[root@jiayi-centos-01 opt]#

2.4 对命令执行结果中的冒号替换为tab制表符

如下,需要使用管道符

[root@jiayi-centos-01 opt]# cat test.txt | tr ':' '\t'
root    x       0       0       root    /root   /bin/bash
bin     x       1       1       bin     /bin    /sbin/nologin
daemon  x       2       2       daemon  /sbin   /sbin/nologin
adm     x       3       4       adm     /var/adm        /sbin/nologin
lp      x       4       7       lp      /var/spool/lpd  /sbin/nologin
sync    x       5       0       sync    /sbin   /bin/sync
shutdown        x       6       0       shutdown        /sbin   /sbin/shutdown
halt    x       7       0       halt    /sbin   /sbin/halt
mail    x       8       12      mail    /var/spool/mail /sbin/nologin
operator        x       11      0       operator        /root   /sbin/nologin
games   x       12      100     games   /usr/games      /sbin/nologin
ftp     x       14      50      FTP User        /var/ftp        /sbin/nologin
nobody  x       99      99      Nobody  /       /sbin/nologin
systemd-network x       192     192     systemd Network Management      /       /sbin/nologin
dbus    x       81      81      System message bus      /       /sbin/nologin
polkitd x       999     998     User for polkitd        /       /sbin/nologin
sshd    x       74      74      Privilege-separated SSH /var/empty/sshd /sbin/nologin
postfix x       89      89              /var/spool/postfix      /sbin/nologin
isrc-admin      x       1000    1000    isrc-admin      /home/isrc-admin        /bin/bash
unbound x       998     996     Unbound DNS resolver    /etc/unbound    /sbin/nologin
rpc     x       32      32      Rpcbind Daemon  /var/lib/rpcbind        /sbin/nologin
qemu    x       107     107     qemu user       /       /sbin/nologin
gluster x       997     995     GlusterFS daemons       /run/gluster    /sbin/nologin
radvd   x       75      75      radvd user      /       /sbin/nologin
saslauth        x       996     76      Saslauthd user  /run/saslauthd  /sbin/nologin
tss     x       59      59      Account used by the trousers package to sandbox the tcsd daemon /dev/null  /sbin/nologin
rpcuser x       29      29      RPC Service User        /var/lib/nfs    /sbin/nologin
nfsnobody       x       65534   65534   Anonymous NFS User      /var/lib/nfs    /sbin/nologin
honghua x       1001    1001            /home/honghua   /bin/bash
[root@jiayi-centos-01 opt]#

2.5 删除文件中的所有小写字母

如下所示,删除小写字母后,每一行还是每一行,只是将小写字母全部删除

[root@jiayi-centos-01 opt]# tr -d 'a-z'<test.txt
::0:0::/://
::1:1::/://
::2:2::/://
::3:4:://://
::4:7::///://
::5:0::/://
::6:0::/://
::7:0::/://
::8:12::///://
::11:0::/://
::12:100:://://
::14:50:FTP U://://
::99:99:N:/://
-::192:192: N M:/://
::81:81:S  :/://
::999:998:U  :/://
::74:74:P- SSH:///://
::89:89::///://
-::1000:1000:-://-://
::998:996:U DNS ://://
::32:32:R D:///://
::107:107: :/://
::997:995:GFS ://://
::75:75: :/://
::996:76:S ://://
::59:59:A          ://://
::29:29:RPC S U:///://
::65534:65534:A NFS U:///://
::1001:1001:://://
[root@jiayi-centos-01 opt]#

2.6 删除文件中的数字冒号和斜线和逗号

如果对应多种匹配可以直接叠加即可

[root@jiayi-centos-01 opt]# tr -d ':/0-9,'<test.txt
rootxrootrootbinbash
binxbinbinsbinnologin
daemonxdaemonsbinsbinnologin
admxadmvaradmsbinnologin
lpxlpvarspoollpdsbinnologin
syncxsyncsbinbinsync
shutdownxshutdownsbinsbinshutdown
haltxhaltsbinsbinhalt
mailxmailvarspoolmailsbinnologin
operatorxoperatorrootsbinnologin
gamesxgamesusrgamessbinnologin
ftpxFTP Uservarftpsbinnologin
nobodyxNobodysbinnologin
systemd-networkxsystemd Network Managementsbinnologin
dbusxSystem message bussbinnologin
polkitdxUser for polkitdsbinnologin
sshdxPrivilege-separated SSHvaremptysshdsbinnologin
postfixxvarspoolpostfixsbinnologin
isrc-adminxisrc-adminhomeisrc-adminbinbash
unboundxUnbound DNS resolveretcunboundsbinnologin
rpcxRpcbind Daemonvarlibrpcbindsbinnologin
qemuxqemu usersbinnologin
glusterxGlusterFS daemonsrunglustersbinnologin
radvdxradvd usersbinnologin
saslauthxSaslauthd userrunsaslauthdsbinnologin
tssxAccount used by the trousers package to sandbox the tcsd daemondevnullsbinnologin
rpcuserxRPC Service Uservarlibnfssbinnologin
nfsnobodyxAnonymous NFS Uservarlibnfssbinnologin
honghuaxhomehonghuabinbash
[root@jiayi-centos-01 opt]#

2.7 针对文件每一行进行压缩,即当存在连续重复的字母时只保留一个

准备文件内容test.txt内容如下

aaaaaaabbbbbbbbbbbbbbbbbcccccccc
abcabcabc

通过-s参数即可实现压缩,如下所示,第二行内容因为不是连续重复,因此不会压缩文章来源地址https://www.toymoban.com/news/detail-734134.html

[root@jiayi-centos-01 opt]# tr -s 'a-z'<test.txt
abc
abcabcabc
[root@jiayi-centos-01 opt]#

到了这里,关于Linux----tr命令详细使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【linux命令讲解大全】073.“Linux文件搜索工具:bzgrep和egrep的使用方法“

    使用正则表达式搜索 .bz2 压缩包中的文件。 补充说明 bzgrep 命令用于在 .bz2 压缩包中搜索符合正则表达式的内容,并将匹配的行输出到标准输出。 语法 参数 pattern : 指定要搜索的模式。 bz2_file : 指定要搜索的 .bz2 压缩包。 在文件内查找指定的字符串。 补充说明 egrep 命令用于

    2024年02月09日
    浏览(48)
  • linux ssh上传下载文件命令SCP使用方法

    在linux环境里,我们从服务器上下载或者从本地上传文件到服务器上可以通过 SCP命令 来实现。 SCP即Security Copy,是基于SSH登录实现的远程文件拷贝命令 。 命令参数: -r: 递归复制整个文件夹 -i :询问是否覆盖 -p :保留文件 具体使用方法如下: scp 本地文件路径 用户名@ServerIP:

    2024年02月16日
    浏览(46)
  • linux下下载文件的常用命令wget,curl等使用方法及使用示例

    在 Linux 操作系统中,有许多下载文件的工具可供选择。这些工具包括命令行工具和图形界面工具,每个工具都有其自身的特点和用途。以下是一些常用的下载文件工具: wget :一个功能强大的命令行下载工具,支持 HTTP、HTTPS、FTP 等协议,能够断点续传、递归下载等。 curl :

    2024年04月17日
    浏览(83)
  • 【linux命令讲解大全】106.使用eject命令退出抽取式设备的方法和选项

    用来退出抽取式设备 eject 命令用来退出抽取式设备。若设备已挂入,则 eject 命令会先将该设备卸除再退出。 eject 允许可移动介质(典型是cd-ROM、软盘、磁带、或者JAZ以及zip磁盘)在软件控制下弹出。该命令也可以控制一些多盘片CD-ROM控制器,控制一些设备支持的自动弹出功

    2024年02月08日
    浏览(38)
  • linux shell pgrep命令使用方法(pgrep指令)获取进程号、统计进程数量(学会区分Linux进程进程名)

    按照我之前,在脚本中,获取除脚本自身进程之外与脚本同名进程号的方法: 这种方法有很大问题,莫名奇妙的,它无法正常过滤掉grep的进程(这里面还有点复杂,我一时半会也搞不明白咋回事,据说是grep会开子进程,并非grep那个子进程,而是开了一个与脚本相同的进程,

    2024年02月07日
    浏览(50)
  • linux usermod命令、groupmod命令使用方法(bad names(不良名称))(GECOS field(GECOS字段))

    usermod 命令用于修改用户账户的属性。它可以用来修改用户的用户名、用户ID、用户组ID、用户家目录、用户登录Shell等属性。例如,要将用户的登录Shell修改为 /bin/bash ,可以使用以下命令: 其中, username 是要修改的用户的用户名。 翻译: 什么是bad names(不良名称)? \\\"bad n

    2024年02月12日
    浏览(53)
  • Linux 下使用 tar 命令打包指定目录下的所有文件,不包含路径方法

    一,问题描述 例如:需要打包/data/android_data/VMRK02ejyijtyww20 文件夹到/data/testtar/目录下 一般我们使用命令如下命令 当我们解VMRK02ejyijtyww20.tar压缩包后发现,把路径也打包进去了, 即/data/android_data/VMRK02ejyijtyww20;而大多数情况,我们解压后只需要的是VMRK02ejyijtyww20文件夹 二、打包

    2024年02月16日
    浏览(57)
  • Linux使用make命令时常见的几种错误及其解决方法(Ubuntu适用)

    这是我在安装busybox时使用make menuconfig命令时所出现过的错误及我的解决方法,仅供参考: 1.出现Command \\\'make\\\' not found 解决方法: sudo apt-get install ubuntu-make sudo apt-get install make                 //我两条都输了一遍才解决问题 2.无法打开锁文件 解决方法: su           //然后输

    2024年02月04日
    浏览(59)
  • 【linux命令讲解大全】045.网络数据分析利器:深度解读 tcpdump 抓包工具的使用方法

    tcpdump是一款在Linux上的抓包工具,用于嗅探网络数据。 补充说明 tcpdump命令是一款抓包、嗅探器工具。它可以打印所有经过网络接口的数据包的头信息,并可使用-w选项将数据包保存到文件中,以便以后进行分析。 语法 选项 -a:尝试将网络和广播地址转换成名称 -c 数据包数

    2024年02月10日
    浏览(51)
  • Elasticsearch的高阶使用方法有哪些?,后端程序员必备的Linux基础知识+常见命令

    ③should 通用的道理:多个查询条件通过should连接,相当于以前常用的or,说白了也就是逻辑运算符“与”。 ps :关于其格式使用,不要看它图中好像挺复杂的样子,其实都可以通过工具有提示,并且这些写多了基本也就知道了。 2范围查询 商品都有自己的价格,用户可以通过

    2024年04月08日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包