`
zhengdl126
  • 浏览: 2542994 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

sed简化命令:tr

 
阅读更多

 连续多个’\n‘字符压缩成单个'\n'

cat t.txt | tr -s '\n'

 

 

 

 

 

 

 

 

 

 

 

 

通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
    tr用来从标准输入中通过替换或删除操作进行字符转换 。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
    带有最常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列 ,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

2、字符范围
指定字符串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

----------------------实例:


将文件file中出现的"abc"替换为"xyz":
# cat file | tr "abc" "xyz" > new_file

 【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。
 
2、使用tr命令“统一”字母大小写
(小写 --> 大写)
# cat file | tr [a-z] [A-Z] > new_file
(大写 --> 小写)
# cat file | tr [A-Z] [a-z] > new_file
 
3、把文件中的数字0-9替换为a-j
# cat file | tr [0-9] [a-j] > new_file


4、删除文件file中出现的"Snail"字符
# cat file | tr -d "Snail" > new_file
 
【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。
 
5、删除文件file中出现的换行'\n'、制表'\t'字符
 
# cat file | tr -d "\n\t" > new_file
 
不可见字符都得用转义字符来表示的,这个都是统一的。
 
6、删除“连续着的”重复字母,只保留第一个
 
# cat file | tr -s [a-zA-Z] > new_file
 
7、删除空行
 
# cat file | tr -s "\n" > new_file
 
8、删除Windows文件“造成”的'^M'字符
 
# cat file | tr -d "\r" > new_file
或者
# cat file | tr -s "\r" "\n" > new_file
 
【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者
 
9、用空格符\040替换制表符\011
 
# cat file | tr -s "\011" "\040" > new_file
 
10、把路径变量中的冒号":",替换成换行符"\n"
 
# echo $PATH | tr -s ":" "\n"

分享到:
评论

相关推荐

    Sed、Awk 与 Linux 等价命令代码鉴赏

    在`Sed`中,这可以通过提取最后一个斜杠后面的内容实现,如`sed 's/\(.*\)\/\([^/]*\)/\2/'` 或者简化为 `sed 's,.*/,,'`。 2. `cat`:显示文件内容。`Sed`中显示整个文件内容可以使用`sed ''`或`sed -n '1,$p'`,...

    Linux命令列表.pdf

    - `alias`:创建命令的别名来简化命令输入。 - `man`:显示命令的手册页。 - `info`:显示特定命令的info页面。 - `which`:显示命令的绝对路径。 - `whatis`:查询命令或文件的简短描述。 - `whereis`:查找命令的...

    Linux常用的60个命令

    46. `alias`:设置别名,简化命令或程序的名称。 47. `echo`:显示一行文本。 48. `printf`:格式化输出文本。 49. `date`:显示或设置系统日期和时间。 50. `cal`:显示日历。 51. `nohup`:运行命令,即使...

    UNIX 快速查询手册

    14. **tr**:tr工具用于字符转换和删除,适用于对文本进行简单的字符替换或删除操作。 15. **Vi的三种工作状态**:Vi编辑器有命令模式、插入模式和末行模式。掌握这些模式的切换和操作,能够高效地编辑文本。 16. ...

    bash批量修改文件名称的方法小结(增加,去除,修改后缀)

    3. 利用管道(`|`)和`sed`命令: ```bash mv "$files" "$(echo "$files.ts"|sed 's/\.//')" ``` 4. 如果文件没有后缀,直接添加: ```bash mv "$files" "$files.txt" ``` 5. 对于已经带有后缀的文件,可以...

    linux-101-hacks

    - **Functions**:函数是Linux中可以自定义脚本,可以简化命令操作,提高工作效率。 - **后退后退!**:这个部分可能是关于使用cd命令返回到上一个目录的技巧。 - **操纵目录栈**:介绍如何使用pushd和popd命令在...

    Linux必学的60个命令.rar

    35. **alias**:创建命令别名,简化常用命令的输入。 36. **logout**/**exit**:退出当前Shell会话。 37. **whoami**:显示当前用户的用户名。 38. **which**:查找命令的执行路径,确认命令的具体版本。 39. **...

    常用的60个Linux常用命令

    49. **alias**:创建命令别名,简化常用命令输入。 50. **unalias**:取消命令别名。 51. **export**:设置或显示环境变量。 52. **env**:显示当前环境变量。 53. **time**:测量命令执行的时间。 54. **yes**...

    LINUX与UNIX SHELL编程指南

    4. 命令别名与函数:如何创建和使用命令别名和自定义函数以简化日常任务。 三、Shell编程高级技巧 1. 条件表达式:解释测试命令(test)和[[...]]结构,以及各种条件运算符的用法。 2. 管道和进程控制:深入理解...

    linux中的命令shell与make介绍

    - **过滤器(Filters)**: 如`sed`, `awk`, `tr`, `grep`等,这些工具通常位于管道的中间,用于处理数据。 - **重定向**: 使用`来改变输入,使用`&gt;`来改变输出,使用`2&gt;`来改变错误输出。例如`command &gt; output.txt`会...

    Linux常用命令全集

    `sed [选项] 命令 文件`,用于自动化文本处理。 - **sort**:对输入行进行排序。`sort [选项] 文件`,用于数据排序。 - **spell**:拼写检查程序。`spell [选项] 文件`,用于文本校对。 - **tr**:替换或删除输入中...

    Unix for poets

    该命令首先使用 `tr` 将所有非字母字符替换为换行符,然后用 `sort` 对单词进行排序,最后 `uniq -c` 计算并输出每个单词的频率。 #### 扩展练习 文档还提供了几个扩展练习,以帮助读者进一步掌握 Unix 文本处理的...

    shell基础十二篇

    7. **sed**:流编辑器sed可以对文本流进行实时编辑,如替换、删除、插入和查找模式。 8. **文件分类、合并和分割**:`sort`用于排序文件,`uniq`去除重复行,`join`连接两个已排序文件,`cut`提取文件的部分列,`...

    unix一些有趣得程序代码

    Unix Shell允许创建别名和函数,简化常用命令的输入。了解如何定义和使用它们,可以使日常的命令行工作更加便捷。 10. **Unix工具链**: Unix系统中包含许多小巧且功能强大的工具,如cut、paste、uniq、tr等。...

    Linux命令全称,包括SQL等等

    63. **hal=HardwareAbstractionLayer**:硬件抽象层,用于简化硬件设备的驱动程序开发。 64. **joe=Joe'sOwnEditor**:一个简单的文本编辑器。 65. **ksh=KornSHell**:一种Shell程序。 66. **lame=LameAin'tanMP3...

    Linux Shell 编程 入门、提高、精通

    `, `[]`)可以用来匹配文件名,用于简化命令的输入。 5. Shell输入与输出 - 标准输入输出重定向(如`&gt;`、`&gt;&gt;`、`、`2&gt;`)可以将命令的输出重定向到文件或从文件读取输入。 6. 命令执行顺序 - 理解命令的执行顺序...

    史上最全的 Linux Shell 文本处理工具集锦.doc

    【Linux Shell 文本处理工具详解】 在Linux操作系统中,Shell是...虽然单行命令原则可以简化脚本,但面对复杂任务时,Python或其他脚本语言可能更为合适。理解并熟练掌握这些工具,将是每个Linux用户不可或缺的技能。

    linux下的shell与make

    - **别名**: 使用`alias`命令定义别名简化命令。 - 示例: `alias rm='rm --f'`。 - **Red Hat特定**: Red Hat用户登录时还会执行`$HOME/.bashrc`,该文件会进一步执行`/etc/bashrc`。 **1.6 条件控制** - **test...

    Weblogic for aix操作手册

    5. **确认用户创建**: 用`#lsuser -c -aid home ALL | sed '/^#.*/d' | tr ':' '\011'`验证。 ##### 2.3 安装WebLogic 9.24 1. **上传WebLogic安装包**: 将`weblogic924.tar`文件上传到`bea`文件夹。 2. **解压缩...

    shell programming

    2. 文本处理:`cat`显示文件内容,`more`或`less`分页查看,`grep`搜索文本,`sed`流编辑器,`tr`字符转换。 3. 文件查找:`find`根据各种条件查找文件,如时间、大小、类型等。 4. 进程管理:`ps`查看当前进程,`...

Global site tag (gtag.js) - Google Analytics