Linux tr命令使用方法
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
Linux tr命令使用方法的更多相关文章
- Linux 常用命令使用方法大搜刮
Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入 ...
- Linux tr命令
介绍 tr命令可以对来自标准输入的字符进行替换.压缩和删除.tr只能接收来自标准的输入流,不能接收参数. 语法 tr [OPTION]... SET1 [SET2] 注意:SET2是可选项 OPTIO ...
- Linux tr 命令使用
man tr: TR(1) User Commands TR(1) NAME tr - translate or delete characters SYNOPSIS tr [OPTION]... S ...
- linux tr命令实现windows文本格式与linux文本格式间的转换
tr 命令 转换和删除字符 选项: -d --delete:删除字符 -s --squeeze-repeats:把连续重复的字符以一个字符表示,即去重 -c –C --complement:取字符集的 ...
- linux tr命令详解
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...
- 【转】linux tail命令使用方法详解
原文网址:http://www.111cn.net/sys/linux/46902.htm linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗讲来,就是把某个 ...
- [转]linux tr命令详解
转自:http://www.cnblogs.com/huangxingkezhan/archive/2013/01/23/2874031.html 通过使用 tr,您可以非常容易地实现 sed 的许多 ...
- Linux核心命令使用方法
一.Linux命令行常用快捷键 ctrl + c cancel 取消当前的操作 ctrl + l (小写字母L) clear(命令)清空当前屏幕 ctrl + d 退出当前用户 ctrl + r 查找 ...
- Linux 常用命令使用方法大搜刮(转)
1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前shel ...
随机推荐
- Java调用R语言
R是统计计算的强大工具,JAVA是做应用系统的主流语言.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统. 一.Rserve(远程通信模式) Rserve是一个基于TCP/ ...
- tomcat Error:NB:JAVA_HOME should point to a JDK not a JRE 解决方法
环境:win7 tomcata7.0解压版本 执行:service.bat install 报错:JAVA_HOME should point to a JDK not a JRE 网上找了几种解决方 ...
- Codeforces-Educational Codeforces Round 53题解
写之前,先发表下感慨:好久没写题解了,也许是因为自己越来越急利了,也可以说是因为越来越懒了. A. Diverse Substring 直接找一找有没有相邻的两个不同的字符即可. B. Vasya a ...
- conda和pip环境管理
1.anaconda换源 制定清华的源: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/ ...
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- 运行vbs脚本
VBS是基于Visual Basic的脚本语言. VBS的全称是:Microsoft Visual Basic Script Edition.(微软公司可视化BASIC脚本版). 其语言类似Visua ...
- ubuntu 手动修改分辨率为1920 X 1080 的两种方式
方案一(临时性,重启会失效): 1.打开终端.输入:cvt 1920 1080 出现有modeline 的提示. 2.使用 xrandr 创建新的 mode,--newmode 后面跟刚刚 cvt 产 ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- sql语句创建数据库和表
sql代码 -- 新建数据库 create database 数据库名称 on primary ( name='xx', filename='E:\xx.mdf', --文件地址 size=20MB, ...
- 【转】不联网如何PING通WIN主机和VMWARE
原文地址:http://www.gqgtpc.com/thread-76838-1-1.html 一般情况下,如果宿主主机的网口连接网线并且能够上网,那么按照VM的默认安装,在VM-Settings- ...