每天学一点shell——tr

tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。
语法:tr [–c/d/s/t] [SET1] [SET2]
SET1: 字符集1
SET2:字符集2
-c:complement,用SET2替换SET1中没有包含的字符
-d:delete,删除SET1中所有的字符,不转换
-s: squeeze-repeats,压缩SET1中重复的字符
-t: truncate-set1,将SET1用SET2转换,一般缺省为-t
 
1、去除重复的字符
#将连续的几个相同字符压缩为一个字符
$ echo aaacccddd | tr -s [a-z]
acd
$ echo aaacccddd | tr -s [abc]
acddd
 
2、删除空白行
#删除空白行就是删除换行符/n
#注意:这些空白行上只有回车符,没有空格符
$ cat test.txt
I love linux!
                                                                                                                          
                                                                                                                          
Hello World!
                                                                                                                          
Shell is worthy to been studied
 
#这里用换行符的转义字符\n

#注意:此处用-s删除了多余的换行符,如果用-d,则会删除所有的换行
符                                                                                                                          
$ cat test.txt | tr -s ["\n"]
I love linux!
Hello World!
Shell is worthy to been studied
#也可以用八进制符\012,\012与\n都是换行符
$ cat test.txt | tr -s "[\012]"
I love linux!
Hello World!
Shell is worthy to been studied
 
3、大小写相互转换
#将语句中所有的小写字母变成大写字母,其中-t可省略
$ echo "Hello World I Love You" |tr [-t] [a-z] [A-Z]
HELLO WORLD I LOVE YOU
#将语句中所有的大写字母变成小写字母
$ echo "Hello World I Love You" |tr [A-Z] [a-z]
hello world i love you
#也可以利用字符类进行转换
#[:lower:]代表小写字母,[:upper:]代表大写字母
$ echo "Hello World I Love You" |tr [:lower:] [:upper:]
HELLO WORLD I LOVE YOU
 
4、删除指定的字符
$ cat test.txt
Monday     09:00
Tuesday    09:10
Wednesday  10:11
Thursday   11:30
Friday     08:00
Saturday   07:40
Sunday     10:00
#现在要删除处理星期之外的所有字符
#-d代表删除,[0-9]代表所有的数字,[: ]代表冒号和空格
$ cat test.txt | tr -d "[0-9][: ]"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
 
5、利用-c进行补集的替换
#有时候在文本中我们只知道要保留的一些字符,其他字符种类繁多,就可以使用补集的替换
$ cat test.txt
Monday     09:00
Tuesday    09:10
Wednesday  10:11
Thursday   11:30
Friday     08:00
Saturday   07:40
Sunday     10:00
#我们只需要星期,则思路就是除了字母,其他统统替换掉
#这里,-c:用换行符替换掉除了字母外的所有字符;-s:删除多余的换行符
cat test.txt|tr -cs  "[a-z][A-Z]" "\n"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
 
总结:其中大小写字母的转换,删除不需要的字符比较常用。tr语法简单,易用。
作者“To_Be_Monster_Of_IT”

每天学一点shell——tr

时间: 2024-10-10 20:23:20

每天学一点shell——tr的相关文章

shell脚本 ----每天学一点shell

tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换.语法:tr [–c/d/s/t] [SET1] [SET2]SET1: 字符集1SET2:字符集2 -c:complement,用SET2替换SET1中没有包含的字符 -d:delete,删除SET1中所有的字符,不转换 -s: squeeze-repeats,压缩SET1中重复的字符-t: truncate-set1,将SET1用SET2转换,一般缺省为-t 1.去除重复的字符#将连续的几个相同字符压缩为一个字符$ e

每天学一点shell-------------------------sed

转载:http://blog.chinaunix.net/u/22677/showart_1076318.html 1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上.sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,

【做一点、学一点】dtree、jquery.validate我写的部分垃圾代码

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>考点管理</title> <!--#include file="/html/common/includeyf.html"--> <script type="text/javascript" src="/js/baseinfo/ex

linux中的more的用法(每天学一点linux)

每天学一点linux 定义和用法 linux more命令,功能类似 cat 命令,more以分页的显示形式显示内容. 按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示 例子 # 显示文件中从第5行起的内容 more +5 log2014.log # 从文件中查找第一个出现"day3"字符串的行 more +/day3 log2014.log # 设定每屏显示行数 more -5 log2014.log # 每页显示5个文件信息,按 Ctrl+F 或者 空格

学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践

简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到另一个. 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量.  对于异地热备,尤其适合灾备.废话不多说了.我们直接进入主题. 我们会主要介绍两部分内容: 一, mysql 备份工作原理 二, 备份实战 我们开始. 我使用的是my

每天学一点shell--------文本处理相关

1. Sed简介 sed 是 一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处 理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输 出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等.以下介绍的是Gnu版本的Sed 3.02. 2. 定址 可以通过定址来定位你所希望编辑的行,该地址用

稍微学一点项目管理

稍微学一点项目管理的相关知识. 项目管理是管理什么 项目管理的主要内容是交付管理.客户管理.人员管理和过程管理. 交付管理. 说白了就是要保证项目的按时交付,为了达到这样的目的,作为项目负责人需要关注交付范围.预算.人员计划和发布计划,并且需要实时监控项目进展,评估是否有潜在风险并给出应对措施. 客户管理. 有些团队可能没有我们平常意义上的客户,但是每一个客户都有一个广义上的客户.你可以认为你是Boss就是你的客户,或者是说甲方就是一个客户.作为团队的管理者,客户的所有沟通.合作都是你的职责.

shell脚本的基本练习----每天学一点

1.#!/bin/sh 第一行告诉操作系统, 此脚本的解释器为 /bin/sh 这个可执行文件 2.while循环: #!/bin/shsleep 1; echo "user"; \sleep 1; echo "password"; \while true; do \echo "output"sleep 1; \done; 3.shell脚本实现telnet的自动输入,用管道来实现,最后的while循环用于给上一条命令充分的执行时间 (sleep

思维导图学 Linux Shell攻略之小试牛刀篇

曾听一位大神讲过,带着目的去学,知识往往能记得牢,记得稳.借助思维导图这个工具,对一些我感兴趣的知识点进行分类管理.以后方便自己复习. 我会以思维导图+代码段的方式,回滚学习linux shell编程. 转义/色彩 与用户交互的接口 #打印一个普通的字符串 [[email protected] ~]# echo "it's isa dog" it's is a dog   #打印一个带有单引号和换行符的字符串,单引号可正常输出,但换行符没有效果 #没有达到想要的效果 [[email p