Bash:常用命令工具-tr命令
tr命令可以用来做简单的字符替换与删除,常用的有-d, -s选项。它的替换与删除是按单个字符来的
假设有以下文本:
Read from the file words.txt
and output the word frequency list
to stdout.
USE CASE 1:
将文本全部转化为大写
$ cat text.txt | tr [a-z] [A-Z]
READ FROM THE FILE WORDS.TXT
AND OUTPUT THE WORD FREQUENCY LIST
TO STDOUT.
tr命令中的[a-z]即为需要被替换的字符的一个集合,而[A-Z]则是替换之后的字符集合,它们是一一对应的关系(a对应A,b对应B...)。tr命令不能做字符串的替换工作如:
$ cat text.txt | tr "the" "an"
Rnad from ann filn words.axa
and ouapua ann word frnqunncy lisa
ao sadoua.
可以看到the并没有被替换为an,而是再一次的按照字符进行了一一替换(t-->a,h-->n,e-->n),这一点需要注意。
USE CASE 2:
将文本中的单词提取为一行一个
$ cat text.txt | tr -s " " "\n"
Read
from
the
file
words.txt
and
output
the
word
frequency
list
to
stdout.
这里使用-s参数用来去重,这里的去重指的是,但指定的字符被替换后,如果发现相邻的有重复的那么只保留一个,如果不加-s参数:
$ cat text.txt | tr " " "\n"
Read
from
the
file
words.txt and
output
the
word
frequency
list to
stdout.
可以看到有多余的回车出现。举一个更极端的例子:
$ echo "AAaaaaabbBBbb"|tr -s [ab] [AB]
AB
可以看到使用了-s参数后,进行替换后连续重复的字符只保留了一个。
查看path变量:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ echo $PATH|tr -s ":" "\n"
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
USE CASE 3:
删除指定字符
$ date|tr -d [A-Za-z]
::
参考:http://blog.sina.com.cn/s/blog_58c3f7960100uttl.html
NAME
tr - translate or delete characters SYNOPSIS
tr [OPTION]... SET1 [SET2] DESCRIPTION
Translate, squeeze, and/or delete characters from standard input, writing to standard output. -c, -C, --complement
use the complement of SET1 -d, --delete
delete characters in SET1, do not translate -s, --squeeze-repeats
replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character -t, --truncate-set1
first truncate SET1 to length of SET2 --help display this help and exit --version
output version information and exit SETs are specified as strings of characters. Most represent themselves. Interpreted sequences are: \NNN character with octal value NNN ( to octal digits) \\ backslash \a audible BEL \b backspace \f form feed \n new line \r return \t horizontal tab \v vertical tab CHAR1-CHAR2
all characters from CHAR1 to CHAR2 in ascending order [CHAR*]
in SET2, copies of CHAR until length of SET1 [CHAR*REPEAT]
REPEAT copies of CHAR, REPEAT octal if starting with [:alnum:]
all letters and digits [:alpha:]
all letters [:blank:]
all horizontal whitespace [:cntrl:]
all control characters [:digit:]
all digits [:graph:]
all printable characters, not including space [:lower:]
all lower case letters [:print:]
all printable characters, including space [:punct:]
all punctuation characters [:space:]
all horizontal or vertical whitespace [:upper:]
all upper case letters [:xdigit:]
all hexadecimal digits [=CHAR=]
all characters which are equivalent to CHAR Translation occurs if -d is not given and both SET1 and SET2 appear. -t may be used only when translating. SET2 is extended to length of SET1 by repeating its last character as necessary. Excess
characters of SET2 are ignored. Only [:lower:] and [:upper:] are guaranteed to expand in ascending order; used in SET2 while translating, they may only be used in pairs to specify case conversion.
-s uses SET1 if not translating nor deleting; else squeezing uses SET2 and occurs after translation or deletion.
Bash:常用命令工具-tr命令的更多相关文章
- Oracle RAC 常用维护工具和命令
Oracle RAC 常用维护工具和命令 分类: Oracle Basic Knowledge Oracle RAC2010-03-09 01:02 13987人阅读 评论(6) 收藏 举报 orac ...
- RAC 常用维护工具和命令(oracle 10g)
Oracle 的管理可以通过OEM或者命令行接口. Oracle Clusterware的命令集可以分为以下4种: 节点层:osnodes 网络层:oifcfg 集群层:crsctl, ocrchec ...
- linux中cut命令与tr命令
目录 一:linux中cut命令 1.cut 命令作用 2.参数 3.参数案例解析: 二:tr命令 1.tr命令作用 2.tr命令格式 3.tr命令参数 4.案例解析: 一:linux中cut命令 1 ...
- linux常用命令:tr 命令
tr 命令实现字符转换功能,其功能类似于 sed 命令,但是,tr 命令比 sed 命令简单.也就是说,tr 命令能实现的功能,sed 命令都可以实现.尽管如此,tr 命令依然是 Linux 系统下处 ...
- 【Linux常见命令】tr命令
tr - translate or delete characters tr 命令用于转换或删除文件中的字符. tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备. 语法: ...
- 常用的工具cmd命令
1.stikynot 2.psr 3.cmd 4.calc 5.mspaint 6.ping
- linux sort,uniq,cut,wc,tr命令详解
sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...
- linux命令总结之tr命令
什么是tr命令?tr,translate的简写,translate的翻译: [trænsˈleit] vi. 翻译, 能被译出 vt. 翻译, 解释, 转化, 转变为, 调动 在这里用到的意思是转化, ...
- tr命令详解
基础命令学习目录 原文链接:https://www.cnblogs.com/ginvip/p/6354440.html 什么是tr命令?tr,translate的简写,translate的翻译: [t ...
随机推荐
- Educational Codeforces Round 25 C. Multi-judge Solving
题目链接:http://codeforces.com/contest/825/problem/C C. Multi-judge Solving time limit per test 1 second ...
- P1494 小Z的袜子
P1494 小Z的袜子 莫队板子题,对询问进行排序+分块,从而得到巧妙的复杂度 对于L,R的询问. 设其中颜色为x,y,z的袜子的个数为a,b,c... 那么答案即为 (a*(a-1)/2+b*(b- ...
- UML入门 之 交互图 -- 时序图 协作图详解
作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 动态图概念 : 从静态图中抽取瞬间值的变化描 ...
- Window History对象
History 对象属性 length 返回浏览器历史列表中的 URL 数量. History 对象方法 back() 加载 history 列表中的前一个 URL. window.history.b ...
- Odoo9.0模块开发全流程
构建Odoo模块 模块组成 业务对象 业务对象声明为Python类, 由Odoo自己主动加载. 数据文件 XML或CSV文件格式, 在当中声明了元数据(视图或工作流).配置数据(模块參数).演示数据等 ...
- Linux vim 编辑命令
vi命令命令模式:yy:复制 光标所在的这一行 4yy:复制 光标所在行开始向下的4行p: 粘贴dd:剪切 光标所在的这一行2dd:剪切 光标所在行 向下 2行D:从当前的光标开始剪切,一直到行末d0 ...
- vsts~CI/CD实现自动化编译
打开你的vs online,选择build and release标签,进行自动化编译的开发. 一 新建,选择对应的源代码管理,我们以VSTS-GIT为例 二 选择你的项目所应对的开发框架,如.net ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- Nodejs学习笔记(三)—模块
简介及资料 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名') ...
- Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
什么是ApplicationContext? 它是spring的核心,Context我们通常解释为上下文环境,但是理解成容器会更好些. ApplicationContext则是应用的容器. Sprin ...