博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux tr命令使用方法
阅读量:4477 次
发布时间:2019-06-08

本文共 1396 字,大约阅读时间需要 4 分钟。

  tr命令主要用于删除文件中控制字符或进行字符转换。本文主要介绍tr命令的基本语法和使用实例。

tr基本语法

  tr命令格式:tr [ -d ] [ -c ] [ -s ] [ 字符串1 ] [ 字符串2 ] 文件名。其中字符串1用于查询,字符串2用于处理各种转换。

  选项介绍:

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。-d 删除字符串1中所有输入字符。-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

  字符串1和字符串2内容只能使用单字符、字符串范围或列表。比如字符串范围[a-z]表示小写字母、[0-9]表示数字。

tr使用实例

  为方便查看命令执行结果,例子中都以数据流重定向方式进行输入。

1、删除文件中的空行

$ echo -e "1\n\n2\n\n\n3" | tr -s '\n' #输出1\n2\n3

  如果参数-s替换为-d,就是删除所有换行符,输出结果为123。

2、删除重复字符

$ echo "Hellooo    Javaaa" | tr -s "[ ao]" #输出Hello Java

  说明:-s是删除所有重复出现字符序列,只保留第一个。再用下面一个例子加深一下这句话的理解。

$ echo "Heoolloooo oo Pythonnnnn" | tr -s 'on' #删除字符on,输出Heollo o Python

3、删除空格

$ echo "   Hello World  " | tr -d '[ \t]' #删除空格,包括tab键。输出HelloWorld

 说明:这里tr命令会删除包括中间的空格,如果只需要删除行首或者尾部的空格,可以使用sed命令。

4、大小写替换,shell编程中可用于忽略大小写的字符串判断场景。

$ echo "Hello World" | tr '[a-z]' '[A-Z]' #小写转大写,输出HELLO WORLD$ echo "Hello World" | tr '[A-Z]' '[a-z]' #大写转小写,输出hello world$ echo "Hello World" | tr '[A-Za-z]' '[a-zA-Z]' #大小写互换,输出hELLO wORLD

5、删除数字或字母,在shell编程中可用于判断输入是否为纯数字或字母。

$ echo "hello 123World456" | tr -d '[0-9]' #删除数字,输出hello World$ echo "hello123World456" | tr -d '[a-zA-Z]' #删除字母,输出123456

 6、将多行内容合并为一行。

$ echo -e "1\n2\n3\n4" | tr -d '\n' #输出1234

7、将多个连续空格合并为一个空格,并将空格替换为破折号‘-’。

$ echo "2018       06  01" |tr -s ' ' '-' #输出2018-06-01

8、删除非数字字符,主要用于了解下-c参数的作用。

$ echo "2018abcdefdf06zzz01" |tr -d -c '[0-9]' #输出20180601

 

转载于:https://www.cnblogs.com/linyfeng/p/9075062.html

你可能感兴趣的文章
数据库事物隔离级别通俗理解
查看>>
js中没有明确判断条件的ifl判断
查看>>
原生js的属性操作
查看>>
sourcetree和Git的使用教程
查看>>
CentOS7 安装lua环境(我是在mysql读写分离用的)
查看>>
小程序踩过的一个小坑---解析二维码decodeURIComponent() url解码
查看>>
CSS—换行
查看>>
eclipse,android studio工具疑惑
查看>>
查看邮件服务器支持的认证方式
查看>>
IT学习网站
查看>>
MySQL where 子句
查看>>
codevs1839 洞穴勘测
查看>>
linux之旅_linux是什么
查看>>
【漏洞预警】CVE-2017-8464 震网三代漏洞复现
查看>>
Mac下如何使用Vim
查看>>
常用js函数整理--common.js
查看>>
只需两步获取任何微信小程序源码
查看>>
欢迎来到Attention的博客
查看>>
获取IOS bundle中的文件
查看>>
document
查看>>