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. Array-Find Pivot Index

    Given an array of integers nums, write a method that returns the "pivot" index of this arr ...

  2. Codeforces Round #452 (Div. 2) C. Dividing the numbers(水)

    C. Dividing the numbers Petya has n integers: 1, 2, 3, ..., n. He wants to split these integers in t ...

  3. Android 打开系统设置界面及相应的系统界面

    方法 1 :startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 方法 2:Intent intent = new Intent(&quo ...

  4. POJ 1082

    #include <iostream> using namespace std; int main() { //freopen("acm.acm","r&qu ...

  5. Tomcat改端口号;修改访问路径,以及配置Context 标签以后Tomcat启动不了

    修改tomcat端口号: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout=&qu ...

  6. vue制作小程序--server

    服务端代码,开发者工具有提供 指南 https//cloud.tencent.com/document/product/619/11442 参考文档API https://developers.wei ...

  7. Android 开发工具类 25_getJSON

    获取 JSON 数据并解析 import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; im ...

  8. Virtualbox下载与安装步骤

    不多说,直接上干货! 本主主要介绍一下如何从官方网站下载正版的 虚拟化 Oracle VM VirtualBox ,以及说明一下去官方下载正版软件的重要性. 一.为了系统的稳定以及数据的安全,建议下载 ...

  9. 初始JAVA中浅拷贝和深拷贝

    1. 简单变量的复制 public static void main(String[] args) { int a = 5; int b = a; System.out.println(a); Sys ...

  10. Nodejs学习笔记(三)—模块

    简介及资料 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名') ...