`

一天一个shell_1_tr

 
阅读更多

 tr(translate缩写)主要用于

  • 删除文件中的控制字符 -d
  • 进行字符转换 -t 和 -c , -t是默认选项, -c表示不在SET1中的字符
  • 去重 -s

 

语法:tr [–c/d/s/t] [SET1] [SET2]
SET1: 字符集1,可以由多个[],如'[a-z][A-Z][\n]'
SET2:字符集2
-c:complement,用SET2替换SET1中没有包含的字符
-d:delete,删除SET1中所有的字符,不转换
-s: squeeze-repeats,压缩SET1中重复的字符
-t: truncate-set1,将SET1用SET2转换,一般缺省为-t
 
 可以指定 字符串序列"[abc]" 或  范围"[a-z]"  作为形成字符串的模式

  [o*n]    表示字符o重复出现指定次数n。如[o*2]匹配oo的字符串。

 

 

当用一个单字符替换一个字符串或字符范围时,注意字符并不放在方括号里([])。一些系统也可以使用方括号,例如可以
写成 ["\012"]或"\012"。tr也允许不加引号,因此命令中看到单引号而不是双引号时也不要感到奇怪。

 

 tr "[0*4]" "*" < hdisk.txt

 

 

----------------------

去重

$ echo aaacccddd | tr -s [abc]
acddd
 
$ tr -s "[a-z][A-Z]" < apps.txt
----------------------
 
$ cat test.txt | tr -s ["\n"]

 

此处用-s删除了多余的换行符,如果用-d,则会删除所有的换行

------

I love linux!

                                                                                                                          
                                                                                                                          
Hello World!

-------

I love linux!

Hello World!

----------------------

大小写转换
$ echo "Hello World I Love You" |tr [-t] [a-z][A-Z]
HELLO WORLD I LOVE YOU
其中-t可省略
 

$ echo "Hello World I Love You" |tr [:lower:][:upper:]

HELLO WORLD I LOVE YOU

----------------------

 

GET / HTTP/1.1
Host: localhost:9000

 

tr -c "[a-zA-Z\n]" "$"<head

GET$$$HTTP$$$$
Host$$localhost$$$$$

 

 

tr -cs "[a-zA-Z\n]" "$"<head
GET$HTTP$
Host$localhost$

命令

 

tr    -cs   "[a-z][A-Z]"   "\n"

-s和-d一起使用, 则-s对SET2去重

 

 

 

将文件每行所有不包含在[ a - z ]或[ A - Z ](所有希腊字母)的字符串放在字符串replace-char-list中并转换为一新行。- s选项表明压缩所有新行, - c表明取source-char-list的反义。

 

mondy 1all0:5b0
Tuesday 15:00
wednesday 15:30
thurday 10:30
Fridya 09:20


dtdlut@dtdlut:~$ tr -cs "[a-z][A-Z]" "\n" < diray.txt 
mondy
all
b
Tuesday
wednesday
thurday
Fridya

分享到:
评论

相关推荐

    shell脚本学习第一天

    以上就是Shell脚本学习的第一天内容,掌握这些基本知识,你就能开始编写简单的Shell脚本来解决日常的系统管理任务。随着技能的提升,你还可以学习更多的高级特性,如条件语句、循环结构、函数定义等,让Shell脚本变...

    一天一个shell命令 linux文本操作系列-tree命令详解

    通常linux发行版本中并没有包括这个命令。你需要用包管理器自行安装。 实例: 1. tree 打印当前目录下所有文件 2. tree –p ${dir} 打印dir目录下所有文件,以及他们的权限 3. tree –h ${dir} 打印dir目录下所有...

    一天一个shell命令 linux文件内容操作系列-cat命令详解

    `cat`命令是Linux系统中一个非常基础且实用的命令,用于查看和处理文本文件的内容。它的名字来源于“concatenate”,意味着将多个文件的内容合并在一起输出。在日常的Linux操作中,`cat`命令通常用于查看文件内容、...

    PHP面试题答案.pdf

    - `print`:它只能输出一个简单类型的变量,如整型或字符串,返回值为1,意味着操作成功。 - `print_r()`:主要用于调试,它能打印出复杂类型的变量,如数组和对象,使其更易读。 3. **防止SQL注入**:PHP提供了`...

    Liunx系统定时删除任务,定时清理日志,定时清理任务

    `crontab`是Linux下的一个计划任务调度命令,它允许用户定义周期性的任务。每个Linux用户都可以有自己的crontab配置,系统级的任务则存储在`/etc/crontab`文件中。 要使用`crontab`,首先需要打开终端并输入`...

    Linux指令一周通 (技术图书大系).azw3

    第1天 文本操作指令 1.1 ar 指令:创建、修改或从档案文件中提取文件 1.2 aspell指令:检查文件的错误 1.3 bunzip2指令:解压缩.bz2类型的文件 1.4 bye指令:中断FTP连接 1.5 bzip2指令:压缩成.bz2类型的文件 1.6 ...

    linux实战培训初级班第三次课课前考试题.docx

    硬链接则是文件的另一个入口,它们共享相同的inode(文件系统索引节点),删除其中一个文件不会影响另一个。 3. Linux shell中单引号、双引号和不加引号的区分: 单引号(' ')内的内容会被当作纯文本处理,不进行...

    centos中mysql备份数据库脚本分享

    最后,脚本包含了一个清理过程,使用 `find` 命令查找 `BACKDIR` 中15天前的旧备份文件并删除它们,以保持备份存储空间的整洁。 这个脚本可以方便地集成到定时任务(如Cron)中,实现定期自动备份,确保网站数据的...

    linux测试题集答案

    - `tar czvf`: 创建一个压缩文件。 - `arthinking.tar.gz`: 输出的压缩文件名。 - `$(ls)`: 获取当前目录下的所有文件名。 #### 二、分别使用`sed`和`awk`实现功能 **16. 在每一行后面增加一空行** **`sed`方法:*...

    惠州学院Linux期末考试试卷题集答案参考

    - `-f 1,3` 提取第一和第三个字段。 - `grep '[0-9]{3,}'` 搜索三个或更多数字的行。 - `wc -l` 计算行数。 **14. 按文件大小的降序列出目录中的所有文件** 命令示例: ``` ls -l | sort -nrk 5 ``` **解析:** - ...

    linux常用命令大全.docx

    - `awk '{print $1}' file`: 输出每行的第一个字段。 - `sed 's/pattern/replacement/g' file`: 替换文件中的模式。 #### 八、进程管理 - **ps**: 显示当前进程。 - `ps aux | grep process`: 查找含有process...

    linux学习.pdf

    35. **创建文件**:`touch system.ini`创建一个新文件,并设定其访问和修改时间为2天前。 36. **创建目录**:`mkdir zdx`创建名为"zdx"的目录,`mkdir -v zdx`显示创建过程。 37. **批量创建目录**:`mkdir -p zdx...

    linux文件及用户管理的实例练习

    - `mkdir /tmp/mytest1`: 创建一个名为mytest1的新目录。 - `cp -a /etc/[p]*[^[:digit:]] /tmp/mytest1/`: 将以p开头且以非数字结尾的所有文件和目录复制到/tmp/mytest1目录中。 - `[p]*`: 以p开头。 - `[^[:...

Global site tag (gtag.js) - Google Analytics