tr 只能通过 stdin(标准输入),而无法通过命令行参数来接受输入。
tr 是 translate(转换)的缩写。
(1)命令格式
tr [参数] SET1 SET2
将来自 stdin 的输入字符从 SET1 映射到 SET2,并将其输出写入 stdout(标准输出)。SET1 和 SET2 是字符类或字符集。如果两个字符集的长度不相等,那么 SET2 会不断重复其最后一个字符,
直到长度与 SET1 相同。如果 SET2 的长度大于 SET1,那么在 SET2 中超出 SET1 的那部分字符则全部被忽略。
(2)常用参数
-d删除匹配 SET1 的内容,并不作替换
(3)常用范例
例一:将输入的字符大写转换为小写,可以使用如下命令:
echo 'THIS IS SHIYANLOU!' | tr 'A-Z' 'a-z'
例二:将输入的字符中的数字删除,可以使用如下命令:
echo 'THIS 123 IS S1HIY5ANLOU!' | tr -d '0-9'
例三:tr 命令的一个有趣的用法是执行 ROT13 文本编码。ROT13 是一款微不足道的基于一种简易的替换暗码的加密类型。
把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。这个方法就是简单地把每个字符在字母表中向前移动 13 位。
因为移动的位数是可能的 26 个字符的一半,所以对文本再次执行这个算法,就恢复到了它最初的形式。可以使用如下命令:
#加密
echo 'shiyanlou' | ??tr ??'a-zA-Z' ??'n-za-mN-ZA-M'??
fuvlnaybh
#解密
echo 'fuvlnaybh' | tr ??'a-zA-Z' ??'n-za-mN-ZA-M'
shiyanlou
16 sort 命令
同文本文件打交道时,总避不开排序,那是因为对于文本处理任务而言,排序(sort)可以起到不小的作用。sort 命令能够帮助我们对文本文件和 stdin 进行排序操作。
通常,它会结合其他命令来生成所需要的输出。
(1)命令格式
sort [参数] [文件名]
(2)常用参数
参数描述
-n基于字符串的长度来排序,使用此参数允许根据数字值排序,而不是字母值
-k指定排序关键字
-b默认情况下,对整行进行排序,从每行的第一个字符开始。这个参数导致 sort 程序忽略每行开头的空格,从第一个非空白字符开始排序
-m只合并多个输入文件
-r按相反顺序排序,结果按照降序排列,而不是升序
-t自定义分隔符,默认为制表符
(3)常用范例
例一:列出/usr/share/目录下使用空间最多的前 10 个目录文件,可以使用如下命令:
du -s /usr/share/* | sort -nr | head -10
du -s /usr/share/* ?? ?? #命令显示/usr/share/目录下所有文件和目录的磁盘使用空间,目录包含目录下的子目录和文件
例二:ls 命令能显示目录下文件的详细信息,包含空间使用大小,但与 du 命令不同的是,ls 命令不计算目录下的子目录和文件的大小。ls 显示格式如下:
-rwxrwxrwx ?? 1 ??root ?? root ??542 ??11 月 ?? 29 ??test.php
现在想要对 ls 命令输出信息中的空间使用大小字段进行排序,可以使用如下命令:
ls -l /usr/bin/ | sort -nr -k 5 | head -10
例三:首先来看下下面的例子:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-69506-5.html
用铁的事实证明了制定建造出众多鬼城的决策是多么的高瞻远瞩
感动