Linux:tr命令详解_aji1978的博客-程序员信息网

技术标签: 操作系统  

tr

tr命令可以对来自标准输入的字符进行替换、压缩和删除

语法

tr(选项)(SET1 SET2)

 

选项

 

-c或——complerment:取代所有不属于第一字符集的字符;

-d或——delete:删除所有属于第一字符集的字符;

-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;

-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

 

参数

SET1:指定要转换或删除的原字符集。

          当执行转换操作时,必须使用参数“SET2”指定转换的目标字符集。

      但执行删除操作时,不需要参数“SET2”;

SET2:指定要转换成的目标字符集。

实例

将输入字符由大写转换为小写

last | tr 'A-Z' 'a-z' 
'A-Z''a-z'都是集合
例如:'ABD-}''bB.,''a-de-h''a-c0-9'都属于集合,集合里可以使用'\n''\t',可以可以使用其他ASCII字符。

 

使用tr删除字符

cat /etc/passwd | tr -d':'

 

将制表符转换为空格:

cat text | tr '\t' ' '

 

字符集补集,从输入文本中将不在补集中的所有字符删除:

echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
结果:
1
2
3
4

此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。

 

用tr压缩字符,可以压缩输入中重复的字符:

echo "thissss is a text linnnnnnne." | tr -s 'sn' this is a text line.

 

巧妙使用tr做数字相加操作:

echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]

 

删除Windows文件“造成”的'^M'字符:

cat file | tr -s "\r" "\n" > new_file 

cat file | tr -d "\r" > new_file

 

可以使用的字符类:

[:alnum:]:字母和数字

[:alpha:]:字母

[:cntrl:]:控制(非打印)字符

[:digit:]:数字

[:graph:]:图形字符

[:lower:]:小写字母

[:print:]:可打印字符

[:punct:]:标点符号

[:space:]:空白字符

[:upper:]:大写字母

[:xdigit:]:十六进制字符

 

使用方式

tr '[:lower:]' '[:upper:]'

 

转载于:https://www.cnblogs.com/Spiro-K/p/6361934.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aji1978/article/details/102156357

智能推荐

TensorRT-5.1.5.0-SSD_知识在于分享的博客-程序员信息网_tensorrt 5.1

文档:https://docs.nvidia.com/deeplearning/sdk/tensorrt-archived/tensorrt-513https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/c_api/index.html安装:https://docs.nvidia.com/deeplearning/sdk/te...

中国的5G建设和美国马斯克的星链有什么区别?_dituicyqz的博客-程序员信息网_星链与6g

中国的5G建设与美国马斯克星链计划还是有区别。需要说明的是5G不是只有中国在建设,美国运营商也在建设,而美国的超人马斯克同步在开展自己的星链计划。因为中国是社会主义国家,电信是由国家控制,而美国是资本主义国家,电信业都是由大资本家控制。所以中国的通信事业是为了人民,5G网络建设是为了满足人民美好数字生活。从技术角度来讲中国的5G基于地面基站组网,需要建设大量的5G基站,确保大部分有人聚集的地方有信号覆盖,其缺点是建设成本高,网络优化运维成本高。马斯克的星链计划是发射约4.2万颗近地轨道卫星,组成可以

(转)jquery.validator规则_anwudao8278的博客-程序员信息网

登录|注册收藏成功确定收藏失败,请重新收藏确定标题标题不能为空网址标签摘要公开 取消收藏分享资...

python 函数 求绝对值 abs()_baobaoqiyue的博客-程序员信息网_python绝对值代码

abs()功能:返回传入数字的绝对值a = -1b = 2print(ads(a),abs(b))输出为:1 2

标准HoughLines()变换_小魔王降临的博客-程序员信息网_houghlines

C++ API说明void cv::HoughLines (InputArray image, //8位,单通道二值源图像。该函数可以修改图像。 OutputArray lines,//输出直线vector(ρ,θ) or (ρ,θ,votes) //ρ是距坐标原点的距离, //θ是以弧...

随便推点

idea运行时的主类怎么设置_IntelliJ IDEA运行/调试配置_weixin_39825722的博客-程序员信息网

运行/调试配置IntelliJ IDEA 可以使用大量的运行/调试配置。每个运行/调试配置都代表一组命名的运行/调试启动属性。当您使用 IntelliJ IDEA 执行运行、调试或测试操作时,您始终会基于一个现有配置的参数来启动一个进程。IntelliJ IDEA 提供了许多运行/调试配置类型,用于各种运行、调试和测试问题。您可以创建自己的特定类型的运行/调试配置。每个运行/调试配置类型都有自己的...

2020-10-14 python 统计字符个数_Kaqiulee的博客-程序员信息网

#输入一行字符串,分别统计出其中英文字母、空格、数字和其他字符的个数请使用循环结构完成newstr=input("请输入一行字符串:")zimu=0kongge=0shuzi=0qita=0times=0while times<len(newstr): mychar=newstr[times] #定义字符串变量,用来提取newstr中每个字符 times=times+1 if mychar.isalpha(): zimu=zimu+1 e

MultipartFile实现附件上传功能_ouyangjun__的博客-程序员信息网

服务端附件上传代码package com.oysept.attachment.controller;import java.io.IOException;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;imp...

c语言_删除数组中的重复数据_古城旧巷少年的博客-程序员信息网_去掉重复数据c语言

这篇代码将实现数组中相同数据的删除操作大致思路如下:1、首先使用malloc动态分配数组的内存,再输入各个数组元素;2、使用两层for循环嵌套,对数组遍历,判断如果出现相同数据,则将后面的数据往前移一位,记录数组长度的变量相应减1;3、输出数组;#include void main(){//第一题:删除数组中相同数据printf("=====

关于Android5.0上SeekBar的一个BUG_天人人的博客-程序员信息网

关于Android5.0上SeekBar的一个BUG最近在做Android5.0的系统APP定制,遇到一个SeekBar拖动无效的问题,进过分析定位发现是由于在异步线程创建SeekBar导致,对应问题demo接下是该问题的具体分析:1.SeekBar代码结构 可以看到SeekBar继承了AbsAeekBar,而AbsAeekBar又继承了ProgressBar 拖动SeekBa

transmac使用方法_如何使用TransMac制作Mac启动盘?TransMac使用说明_悟无误的博客-程序员信息网

很多用户都习惯了利用Mac电脑来制作Mac启动盘,但是如果用户只有一台Mac电脑,而且刚好它的系统被破坏了,必须得重装才能正常使用,那么该怎么办?遇到这样的问题,大家可以利用Windows电脑下载TransMac工具来制作Mac启动盘。可是很多用户表示自己不懂怎么操作,所以本文将和大家讲解TransMac制作Mac启动盘的方法,帮助Mac电脑恢复操作系统。如何使用TransMac制作Mac启动盘?...

推荐文章

热门文章

相关标签