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命令的更多相关文章

  1. Oracle RAC 常用维护工具和命令

    Oracle RAC 常用维护工具和命令 分类: Oracle Basic Knowledge Oracle RAC2010-03-09 01:02 13987人阅读 评论(6) 收藏 举报 orac ...

  2. RAC 常用维护工具和命令(oracle 10g)

    Oracle 的管理可以通过OEM或者命令行接口. Oracle Clusterware的命令集可以分为以下4种: 节点层:osnodes 网络层:oifcfg 集群层:crsctl, ocrchec ...

  3. linux中cut命令与tr命令

    目录 一:linux中cut命令 1.cut 命令作用 2.参数 3.参数案例解析: 二:tr命令 1.tr命令作用 2.tr命令格式 3.tr命令参数 4.案例解析: 一:linux中cut命令 1 ...

  4. linux常用命令:tr 命令

    tr 命令实现字符转换功能,其功能类似于 sed 命令,但是,tr 命令比 sed 命令简单.也就是说,tr 命令能实现的功能,sed 命令都可以实现.尽管如此,tr 命令依然是 Linux 系统下处 ...

  5. 【Linux常见命令】tr命令

    tr - translate or delete characters tr 命令用于转换或删除文件中的字符. tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备. 语法: ...

  6. 常用的工具cmd命令

    1.stikynot 2.psr 3.cmd 4.calc 5.mspaint 6.ping

  7. linux sort,uniq,cut,wc,tr命令详解

    sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...

  8. linux命令总结之tr命令

    什么是tr命令?tr,translate的简写,translate的翻译: [trænsˈleit] vi. 翻译, 能被译出 vt. 翻译, 解释, 转化, 转变为, 调动 在这里用到的意思是转化, ...

  9. tr命令详解

    基础命令学习目录 原文链接:https://www.cnblogs.com/ginvip/p/6354440.html 什么是tr命令?tr,translate的简写,translate的翻译: [t ...

随机推荐

  1. Android 美学设计基础 <2>

    我们接着上期的项目进行分享. 1.2.2 Elevation (仰角) 仰角只的是不同的素材块在Z轴上的选对位置 仰角的测量方式 这里只的是两个平面在z的距离,记住我们默认每个平面都是1dp的厚度 1 ...

  2. iOS —— GCD 详解

    一.什么是GCD Grand Central Dispatch (强大的中枢调度器) ,是异步执行任务的技术之一.纯C语言,有很多强大的函数. 二.GCD的优势 (1)GCD是苹果公司为多核并行运算提 ...

  3. 【洛谷p3994】Highway 二分+斜率优化DP

    题目大意:给你一颗$n$个点的有根树,相邻两个点之间有距离,我们可以从$x$乘车到$x$的祖先,费用为$dis\times P[x]+Q[x]$,问你除根以外每个点到根的最小花费. 数据范围:$n≤1 ...

  4. 解决Mysql Workbench的Error Code: 1175错误 无法删除数据

    使用workbench,如果你要批量更新或删除数据,一般会报“ Error Code: 1175 You are using safe update mode and you tried to upd ...

  5. 【Azure】Publish Error of "%(TargetOSFamily.Identity)" that evaluates to "" instead of a number

    在向Azure部署程序的时候,出现如下错误: A numeric comparison was attempted on "%(TargetOSFamily.Identity)" ...

  6. 2018春招-今日头条笔试题5题(后附大佬答案-c++版)

    1题目描述 在n个元素的数组中,找到差值为k的除重后的数字对 输入描述 第一行:n和k,n表示数字的个数,k表示差值 第二行:n个整数 输入样例 输入: 5 2 1 5 3 4 2 输出: 3 说明: ...

  7. Mac下TensorFlow安装及环境搭建

    在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学 ...

  8. rpm使用方法

    查看rpm信息:rpm -q [软件的rpm名字]rpm -q下还有很多选项,具体功能如下:rpm -qa                列出所有已安装的RPM文件rpm -qa | grep [rp ...

  9. 如何学习JavaEE,项目又该如何做?

    本文主要分为三个部分: 如何学习java基础 如何学习javaEE 你关心的项目问题 01 java基础学习 建议初学者看视频学习,不推荐看书.入门视频选择非常重要,最好是通俗易懂.深入浅出的教学视频 ...

  10. highcharts绘制股票k线

    借助highcharts绘制股票k线: 后台通过websocket没个一定时间下发最新数据,然后重新绘制k线; 开发文档: https://api.highcharts.com/highcharts/ ...