1.paste工具
paste工具用于合并文件行
常用选项:
-d:自定义间隔符,默认是tab
-s:串行处理,非并行
2. tr工具
tr用于字符转换,替换和删除;主要用于删除文件中控制字符或进行字符转换
语法和选项
语法
用法1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理
commands|tr 'string1' 'string2'
用法2:tr处理的内容来自文件,记住要使用"<"标准输入
tr 'string1' 'string2' < filename
用法3:匹配string1进行相应操作,如删除操作
tr [options] 'string1' < filename
常用选项
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串
常匹配字符串:
字符串 | 含义 | 备注 |
---|---|---|
==a-z==或[:lower:] | 匹配所有小写字母 | 所有大小写和数字[a-zA-Z0-9] |
==A-Z==或[:upper:] | 匹配所有大写字母 | |
==0-9==或[:digit:] | 匹配所有数字 | |
[:alnum:] | 匹配所有字母和数字 | |
[:alpha:] | 匹配所有字母 | |
[:blank:] | 所有水平空白 | |
[:punct:] | 匹配所有标点符号 | |
[:space:] | 所有水平或垂直的空格 |
| [:cntrl:] | 所有控制字符 | \f Ctrl-L 走行换页<br/>\n Ctrl-J 换行 \r Ctrl-M 回车 \t Ctrl-I tab键 |
举例说明:
[root@MissHou shell01]# cat 3.txt 自己创建该文件用于测试
ROOT:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
boss02:x:516:511::/home/boss02:/bin/bash
vip:x:517:517::/home/vip:/bin/bash
stu1:x:518:518::/home/stu1:/bin/bash
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
aaaaaaaaaaaaaaaaaaaa
bbbbbb111111122222222222233333333cccccccc
hello world 888
666
777
999
# tr -d '[:/]' < 3.txt 删除文件中的:和/
# cat 3.txt |tr -d '[:/]' 删除文件中的:和/
# tr '[0-9]' '@' < 3.txt 将文件中的数字替换为@符号
# tr '[a-z]' '[A-Z]' < 3.txt 将文件中的小写字母替换成大写字母
# tr -s '[a-z]' < 3.txt 匹配小写字母并将重复的压缩为一个
# tr -s '[a-z0-9]' < 3.txt 匹配小写字母和数字并将重复的压缩为一个
# tr -d '[:digit:]' < 3.txt 删除文件中的数字
# tr -d '[:blank:]' < 3.txt 删除水平空白
# tr -d '[:space:]' < 3.txt 删除所有水平和垂直空白