一.cut命令
cut 命令是一个将文本按列进行切分的小工具,它可以指定分隔每列的定界符。
如果一行数据包含多个字段(多列),现在想要提取其中的一列或多列,这是 cut 命令就可以大显身手了。
(1)命令格式
cut [选项] [文件名]
(2)常用参数
参数 | 描述 |
---|---|
-b | 以字节为单位进行分割 |
-c | 以字符为单位进行分割 |
-d | 自定义分隔符,默认为制表符 |
-f | 自定义字段 |
--complement | 抽取整个文本行,除了那些由 -c 或 -f 选项指定的文本 |
二.paste命令
paste 命令的功能正好与 cut 相反。它会添加一个或多个文本列到文件中,而不是从文件中抽取文本列。它通过读取多个文件,然后把每个文件中的字段整合成单个文本流,输入到标准输出。
(1)命令格式
paste [选项] [文件名]
(2)常用参数
参数 | 描述 |
---|---|
-s | 将每个文件合并成行而不是按行粘贴 |
-d | 自定义分隔符,默认为制表符 |
三.tr命令
tr 命令常被用来更改字符。我们可以把它看作是一种基于字符的查找和替换操作。换字是一种把字符从一个字母转换为另一个字母的过程。tr 从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。
tr 只能通过 stdin(标准输入),而无法通过命令行参数来接受输入。
tr 是 translate(转换)的缩写。
(1)命令格式
tr [选项] SET1 SET2
将来自 stdin 的输入字符从 SET1 映射到 SET2,并将其输出写入 stdout(标准输出)。SET1 和 SET2 是字符类或字符集。如果两个字符集的长度不相等,那么 SET2 会不断重复其最后一个字符,直到长度与 SET1 相同。如果 SET2 的长度大于 SET1,那么在 SET2 中超出 SET1 的那部分字符则全部被忽略。
(2)常用参数
参数 | 描述 |
---|---|
-d | 删除匹配 SET1 的内容,并不作替换 |
TIP:
tr 命令的一个有趣的用法是执行 ROT13 文本编码。ROT13 是一款微不足道的基于一种简易的替换暗码的加密类型。把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。这个方法就是简单地把每个字符在字母表中向前移动 13 位。因为移动的位数是可能的 26 个字符的一半,所以对文本再次执行这个算法,就恢复到了它最初的形式。可以使用如下命令:
#加密
echo 'clearlove' | tr 'a-zA-Z' 'n-za-mN-ZA-M'
pyrneybir
#解密
echo 'pyrneybir' | tr 'a-zA-Z' 'n-za-mN-ZA-M'
clearlove