`
vaqeteart
  • 浏览: 308432 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

tr

阅读更多
tr [OPTION]... SET1 [SET2]
[功能]
转换或者删除字符。

[描述]
tr指令从标准输入设备读取数据,经过字符串转译后,输出到标准输出设备。
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
参数:
  -c或--complerment   取代所有不属于第一字符集的字符。
  -d或--delete   删除所有属于第一字符集的字符。
  -s或--squeeze-repeats   把连续重复的字符以单独一个字符表示。
  -t或--truncate-set1   这个比较难理解,man上面的解释是:first truncate SET1 to length of SET2,经过我的实践发现,将set1的字符依次替换成set2中的字符,如果set1中的字符数目超过set2,那么set1多出的字符忽略。如果没有-t,那么多出的字符都替换成set2的最后一个字符。
  --help   在线帮助。
  --version   显示版本信息。

字符范围
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G  铃声\007
\b Ctrl-H  退格符\010
\f Ctrl-L  走行换页\014
\n Ctrl-J  新行\012
\r Ctrl-M  回车\015
\t Ctrl-I  tab键\011
\v Ctrl-X  \030

[举例]
*压缩文件test内容中重复的字符为一个:
$tr -s [a-z] <test
这样,会把文件中每一行的,Set1([a-z])字符串中的重复字符压缩为一个,并把处理的结果打印到标准输出,原来的文件不变。
注意这里,set1集合(也就是第一个参数[a-z])中指定的是字符集合,而不是字符串,所以这里做的是把单个字符的重复给压缩为一个,而不是字符串的重复。
例如test有一行是tttt.tgz,那么会变成t.tgz,但是hellohellohello会变成helohelohelo.

*去掉文件中多余的空行:
$tr -s "[\012]" < test
或$tr -s ["\n"] <test
这里,假设原来文件test的内容是:
111
222

333


444
运行之后,标准输出:
111
222
333
444
而原来文件的内容不会改变。

*删除文件中的^M,并代之以换行:
$tr -s "[\015]" "[\n]" <test
或$tr -s "[\r]" "[\n] <test
一般来说,windows上面编辑的文件拿到linux上面来没行的结尾可以会有这样的符号,实际上直接cat也看不出^M符号。

*替换文件test中所有冒号,代之以逗号:
$tr -s "[:]" "[,]" <test
或$tr -s ":" "," <test

*显示$PATH变量将":"变成回车:
echo $PATH | tr ":" "\n"
这里,用 echo $PATH 或者 echo $LD_LIBRARY_PATH 等类似的命令来显示路径信息的话,我们看到的将会是一大堆用冒号连接在一起的路径, tr命令可以把这些冒号转换为回车,这样,这些路径就具有很好的可读性了.

*以上命令在vi中进行处理:
1,$!tr -s ":" ","
这样,会直接修改vi编辑的文件,可以在vi内使用所有这些命令!只要记住:在tr命令前要加上您希望处理的行范围和感叹号 (!),如 1,$!tr -d '\t'(美元符号表示最后一行)。

*替换第一个参数字符集之外的字符为指定字符:
tr -c [boy] "k" <trTest
输入之后,输出如下:
kkkkokboykkookk
这里,会把属于第一个参数的字符集中的字符之外的所有,都替换成第二个参数对应的字符。第二个参数必须是单个字符,如果是多个字符,则取最后一个,例如"ka"等价于'a'.
使用"cat trTest"查看文件的内容如下:
hello
boy
good

*删除set1字符集指定的字符:
$tr -d bld <trTest
或$tr -d [bld] <trTest
输入之后,输出如下:
heo
oy
goo
这样,会删除trTest文件中的所有"bld"三个字符。这里使用cat查看trTest文件内容如下:
$cat trTest
hello
boy
good

*把文件中的小写字符转换成大写的:
$tr a-z A-Z <testTr
或$tr [a-z] [A-z] <testTr
输入之后,输出如下:
111
222
HELLO
这里,testTr内容如下:
111
222
hello

*使用-t替换字符,set1超出set2的部分忽略:
$tr -t hld boy < trTest
输入之后,输出如下:
beooo
boy
gooy
这样,会依次把h,l,d替换成b,o,y如果是hldg那么多出来的字符g忽略,如果没有-t那么多出来的所有字符被替换成boy的最后一个字符y.
这里trTest文件的内容:
$cat trTest
hello
boy
good
分享到:
评论

相关推荐

    TR069 TR098 TR064 TR067 资料 文档 大全

    TR069、TR098、TR064和TR067是四个重要的通信协议,主要用于远程管理和配置家庭网络设备,如宽带调制解调器、路由器、机顶盒等。这些协议由DSL论坛(现为Broadband Forum)制定,旨在提高服务提供商对家庭用户设备的...

    TR069协议中文版_tr069协议中文_tr069_TR098Amendment2_tr069.zip_

    TR069协议,全称为Technical Report 069,是由DSL论坛(现为Broadband Forum)制定的一套管理协议,旨在提供一种安全、高效的方法来远程管理家庭和小型企业网络设备,如宽带调制解调器、路由器、机顶盒等。...

    TR069和TR098协议文档

    TR069(Technical Report 069)和TR098是两种广泛应用于设备管理和服务提供商网络自动化的重要协议。这两种协议由DSL论坛(现为Broadband Forum)制定,旨在提供一种安全、可靠的方式来远程管理和配置家庭及企业网络...

    TR069交互协议-TR098节点定义规范

    TR098节点定义规范是TR069协议的一个重要组成部分,主要针对家庭网关设备的管理和控制。TR069是一种广泛应用于远程管理和配置家庭网络设备的协议,特别是路由器和网关设备。该协议旨在提供一个标准接口,使得服务...

    TR31 TR34标准.rar

    《TR31 TR34标准详解——对称密钥的非对称分发技术》 在信息安全领域,数据加密是保障信息安全的重要手段。对称密钥加密和非对称密钥加密是两种主要的加密方式,各有其优势与应用场景。今天我们将深入探讨TR31和TR...

    IPD技术评审(TR1-TR6)知识分享

    TR1到TR6是IPD流程中的七个技术评审点,每个阶段都有其特定的关注点和评审内容。 1. TR评审定义: 技术评审TR是对产品开发项目的阶段评估,旨在衡量技术成熟度,包括技术、交付和市场等方面。TR1至TR6是对产品从...

    TR-142(Framework for TR-069 enabled PON devices)

    ### TR-142:TR-069启用的PON设备框架 #### 概述 TR-142(Technical Report 142)是由宽带论坛(The Broadband Forum)发布的一份技术报告,主要关注TR-069协议在无源光网络(Passive Optical Network, PON)中的...

    TR-111(属于TR069协议族)

    TR-111是TR-069协议族的一个重要组成部分,主要应用于家庭网络设备的远程管理。TR-069(Technical Report 069)是由DSL论坛(现为Broadband Forum)制定的一套标准,旨在提供一种安全、自动化的远程配置和管理家庭...

    TR181 Amendment 8 协议

    TR-181 Amendment 8协议是宽带论坛(Broadband Forum)制定的技术报告,专注于TR-069问题2的设备数据模型。这份文档是在2014年9月发布的,涵盖了TR-069 TR-181问题2的修订8版本。宽带论坛是一个非营利性的组织,旨在...

    tr069_cwmp.zip_CWMP_acs_tr069_tr069 c语言_tr069 客户端

    TR-069,全称为CPE(Customer Premises Equipment)Wideband Management Protocol,是由DSL Forum(现为Broadband Forum)制定的一种管理协议,用于远程自动化配置、管理和故障诊断家庭或企业网络中的设备,如调制...

    TR098:TR069宽带参数模型

    ### TR098:TR069宽带参数模型解析 #### 概述 TR098,即《Internet Gateway Device Data Model for TR-069》,是针对TR-069标准的一种数据模型规范,旨在为宽带网络中的网关设备提供统一的数据管理和控制接口。该...

    TR-104(tr069协议组中的一员)

    TR-104是TR-069协议族中的一个重要组成部分,主要关注家庭网关和其他CPE(Customer Premises Equipment)设备的管理。TR-069,全称为"Technical Recommendation CPE WAN Management Protocol",是由DSL论坛(现为...

    TR181英文标准协议PDF

    TR181是宽带论坛(Broadband Forum)发布的一个技术报告,主要针对TR-069设备管理协议的数据模型。这个标准旨在规范和促进宽带网络系统的发展与部署。TR-069,全称为Automated Configuration Server (ACS) and CPE ...

    TR-181_Issue-2_Amendment-2-Device Data Model For TR069

    ### TR-181 Issue-2 Amendment-2 设备数据模型详解 #### 一、概述 TR-181 Issue-2 Amendment-2是宽带论坛(The Broadband Forum)发布的一项技术报告,主要关注于为TR-069提供设备数据模型。TR-069是一种广泛应用...

    TR069标准协议族

    这些协议族主要包括TR069、TR098、TR104、TR111和TR143,它们在IT行业中扮演着至关重要的角色,特别是在家庭网关、DSL调制解调器、机顶盒和其他CPE(客户驻地设备)的远程管理中。 TR069(Technical Report 069),...

    TR-135协议

    标题:TR-135协议 描述:TR-069协议在远程管理机顶盒中的应用 在深入了解TR-135协议之前,我们首先需要理解其基础——TR-069协议。TR-069,全称为CPE WAN Management Protocol(CPE广域网管理协议),是由DSL论坛...

    tr069主要协议规范

    TR069是一种重要的通信协议,全称为Technical Report 069,由DSL论坛(现为Broadband Forum)制定,用于远程管理家庭和小型企业网络设备,如宽带调制解调器、路由器、IPTV机顶盒等。该协议为设备提供商和服务提供商...

    TR069协议详细教程

    TR069协议详解 TR069协议,全称为用户终端设备广域网管理协议(CWMP),是由数字用户线(DSL)论坛(现更名为Broadband Forum)制定的一种网络管理协议,旨在解决VoIP、IPTV等IP终端设备日益普及带来的配置和维护...

    tr069参数节点

    ### TR069参数节点详解 #### 一、引言 随着宽带技术的快速发展与普及,TR-069作为一种重要的远程配置管理协议,在运营商网络设备管理中扮演着至关重要的角色。本文旨在深入探讨《TR-098互联网网关设备数据模型》中...

    tr的详细用法tr的详细用法

    ### tr命令的详细用法 #### 一、引言 `tr` 是一个非常实用的命令行工具,用于对文本进行简单的转换操作。通过使用 `tr`,用户可以轻松实现 `sed` 的许多最基本的功能,如字符替换、删除以及去除重复字符等。尽管 `...

Global site tag (gtag.js) - Google Analytics