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脚本变...
通常linux发行版本中并没有包括这个命令。你需要用包管理器自行安装。 实例: 1. tree 打印当前目录下所有文件 2. tree –p ${dir} 打印dir目录下所有文件,以及他们的权限 3. tree –h ${dir} 打印dir目录下所有...
`cat`命令是Linux系统中一个非常基础且实用的命令,用于查看和处理文本文件的内容。它的名字来源于“concatenate”,意味着将多个文件的内容合并在一起输出。在日常的Linux操作中,`cat`命令通常用于查看文件内容、...
- `print`:它只能输出一个简单类型的变量,如整型或字符串,返回值为1,意味着操作成功。 - `print_r()`:主要用于调试,它能打印出复杂类型的变量,如数组和对象,使其更易读。 3. **防止SQL注入**:PHP提供了`...
`crontab`是Linux下的一个计划任务调度命令,它允许用户定义周期性的任务。每个Linux用户都可以有自己的crontab配置,系统级的任务则存储在`/etc/crontab`文件中。 要使用`crontab`,首先需要打开终端并输入`...
第1天 文本操作指令 1.1 ar 指令:创建、修改或从档案文件中提取文件 1.2 aspell指令:检查文件的错误 1.3 bunzip2指令:解压缩.bz2类型的文件 1.4 bye指令:中断FTP连接 1.5 bzip2指令:压缩成.bz2类型的文件 1.6 ...
硬链接则是文件的另一个入口,它们共享相同的inode(文件系统索引节点),删除其中一个文件不会影响另一个。 3. Linux shell中单引号、双引号和不加引号的区分: 单引号(' ')内的内容会被当作纯文本处理,不进行...
最后,脚本包含了一个清理过程,使用 `find` 命令查找 `BACKDIR` 中15天前的旧备份文件并删除它们,以保持备份存储空间的整洁。 这个脚本可以方便地集成到定时任务(如Cron)中,实现定期自动备份,确保网站数据的...
- `tar czvf`: 创建一个压缩文件。 - `arthinking.tar.gz`: 输出的压缩文件名。 - `$(ls)`: 获取当前目录下的所有文件名。 #### 二、分别使用`sed`和`awk`实现功能 **16. 在每一行后面增加一空行** **`sed`方法:*...
- `-f 1,3` 提取第一和第三个字段。 - `grep '[0-9]{3,}'` 搜索三个或更多数字的行。 - `wc -l` 计算行数。 **14. 按文件大小的降序列出目录中的所有文件** 命令示例: ``` ls -l | sort -nrk 5 ``` **解析:** - ...
- `awk '{print $1}' file`: 输出每行的第一个字段。 - `sed 's/pattern/replacement/g' file`: 替换文件中的模式。 #### 八、进程管理 - **ps**: 显示当前进程。 - `ps aux | grep process`: 查找含有process...
35. **创建文件**:`touch system.ini`创建一个新文件,并设定其访问和修改时间为2天前。 36. **创建目录**:`mkdir zdx`创建名为"zdx"的目录,`mkdir -v zdx`显示创建过程。 37. **批量创建目录**:`mkdir -p zdx...
- `mkdir /tmp/mytest1`: 创建一个名为mytest1的新目录。 - `cp -a /etc/[p]*[^[:digit:]] /tmp/mytest1/`: 将以p开头且以非数字结尾的所有文件和目录复制到/tmp/mytest1目录中。 - `[p]*`: 以p开头。 - `[^[:...