Sobell谈bash和Linux命令行命运
http://tech.ddvip.com 2007年04月21日 社区交流
本文详细介绍Sobell谈bash和Linux命令行命运
tr工具读取标准输入中每一个输入的字符,把字符镜像为一个替代的字符并删除原来的字符或者把不再管那个字符。这个工具读取标准的输入并且写入标准的输出。
tr工具一般与两个参数一起使用,string1(字符串1)和string2(字符串2)。每个字符在这两个字符串中的位置是非常重要的:每一次tr发现在其输入的string1中的一个字符的时候,它都要用string2中相对应的字符取代那个字符。
使用一个参数,string1和“--delete”(删除指令)的选项,tr删除在string1中指定的字符。这个“squeeze-repeats ”(缩减连续重复的字符)选项使用一个出现的字符取代在string1中连续出现的字符,例如abbc将变成abc。
你可以使用一个连字符代表在instring1或者string2中的一系列字符。这两个命令行在下面的例子中产生同样的结果:
$ echo abcdef | tr 'abcdef' 'xyzabc'
xyzabc
$ echo abcdef | tr 'a-f' 'x-za-c'
xyzabc
下面这个例子演示了隐藏文本的流行的做法。这个方法通常称作“ROT13”(rotate 13),因为它用第十三个字母代替第一个字母,用第十四个字母代替第二个字母,以此类推。
$ echo The punchline of the joke is ... |
> tr 'A-M N-Z a-m n-z' 'N-Z A-M n-z a-m'
Gur chapuyvar bs gur wbxr vf ...
为了使这个文本再次智能化,把给tr的参数顺序倒过来:
$ echo Gur chapuyvar bs gur wbxr vf ... |
> tr 'N-Z A-M n-z a-m' 'A-M N-Z a-m n-z'
The punchline of the joke is ...
这个“--delete”选项使tr删除选择的字符:
$ echo If you can read this, you can spot the missing vowels! |
> tr --delete 'aeiou'
If y cn rd ths, y cn spt th mssng vwls!
在下面的例子中,tr替换几个字符并且产生与单个字符相同的一对儿字符:$ echo tennessee | tr --squeeze-repeats 'tnse' 'srne'
serene
下一个例子用一个“新文件”字符替换在draft1文件中的没有按照字母顺序排列的每一个字符。输出是一个词汇列表,每一行一个单词:
$ tr --complement --squeeze-repeats '[:alpha:]' ' ' < draft1
最后一个例子是使用字符类提升那里的字符串“hi there”:
$ echo hi there | tr '[:lower:]' '[:upper:]'
HI THERE
总结
LP:最后还有什么想法吗?
答:我想说命令行并不适用于每一个人。命令行适用于那些要求亲手操作和对他们驯服的野兽有更强的控制力的那些用户。学习外壳程序能够做什么已经成功了一半。成功的另一半是学习一些与Linux发布版一起推出的许多工具的知识。你不需要了解每一个指令的每一个参数。了解每一个指令名称的含义和每个指令基本上能做什么就足够了。你可以阅读我的书中有关人和信息的内容或者有关指令参考的部分。查看tac工具并且在一开始的时候会对这个工具名称的起源感到可笑。
责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……