7. paste工具
paste工具用于合并文件行
常用选项:-d:自定义间隔符,默认是tab-s:串行处理,非并行
##8. tr工具
tr用于字符转换,替换和删除;主要用于删除文件中控制字符或进行字符转换
语法和选项
语法:
用法1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理#commands|tr'string1''string2'用法2:tr处理的内容来自文件,记住要使用"<"标准输入#tr'string1''string2'<filename用法3:匹配string1进行相应操作,如删除操作#troptions'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 走行换页
\n Ctrl-J 换行
\r Ctrl-M 回车
\t Ctrl-I tab键
举例说明:
[rootshell01]#cat3.txt自己创建该文件用于测试ROOT:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinboss02:x:516:511::/home/boss02:/bin/bashvip:x:517:517::/home/vip:/bin/bashstu1:x:518:518::/home/stu1:/bin/bashmailnull:x:47:47::/var/spool/mqueue:/sbin/nologinsmmsp:x:51:51::/var/spool/mqueue:/sbin/nologinaaaaaaaaaaaaaaaaaaaabbbbbb111111122222222222233333333cccccccchelloworld888666777999#tr-d'[:/]'<3.txt删除文件中的:和/#cat3.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删除所有水平和垂直空白
小试牛刀
使用小工具分别截取当前主机IP;截取NETMASK;截取广播地址;截取MAC地址
#ifconfigeth0|grep'Bcast'|tr-d'[a-zA-Z ]'|cut-d: -f2,3,410.1.1.1:10.1.1.255:255.255.255.0#ifconfigeth0|grep'Bcast'|tr-d'[a-zA-Z ]'|cut-d: -f2,3,4|tr':''\n'10.1.1.110.1.1.255255.255.255.0#ifconfigeth0|grep'HWaddr'|cut-d: -f2-|cut-d' '-f400:0C:29:25:AE:54#ifconfigeth0|grep'HW'|tr-s' '|cut-d' '-f500:0C:29:B4:9E:4E#ifconfigeth1|grepBcast|cut-d: -f2|cut-d' '-f1#ifconfigeth1|grepBcast|cut-d: -f2|tr-d'[ a-zA-Z]'#ifconfigeth1|grepBcast|tr-d'[:a-zA-Z]'|tr' ''@'|tr-s'@'|tr'@''\n'|grep-v^$#ifconfigeth0|grep'Bcast'|tr-d [:alpha:]|tr'[ :]''\n'|grep-v^$#ifconfigeth1|grepHWaddr|cut-d' '-f11#ifconfigeth0|grepHWaddr|tr-s' '|cut-d' '-f5#ifconfigeth1|grepHWaddr|tr-s' '|cut-d' '-f5#ifconfigeth0|grep'Bcast'|tr-d'a-zA-Z:'|tr' ''\n'|grep-v'^$'
将系统中所有普通用户的用户名、密码和默认shell保存到一个文件中,要求用户名密码和默认shell之间用tab键分割
#grep'bash$'passwd|grep-v'root'|cut-d: -f1,2,7|tr':''\t'|teeabc.txt
二、bash的特性
##1、命令和文件自动补全
Tab只能补全命令和文件 (RHEL6/Centos6)
##2、常见的快捷键
^c终止前台运行的程序^z将前台运行的程序挂起到后台^d退出等价exit^l清屏^a|home光标移到命令行的最前端^e|end光标移到命令行的后端^u删除光标前所有字符^k删除光标后所有字符^r搜索历史命令
##3 、常用的通配符(重点)
*: 匹配0或多个任意字符?: 匹配任意单个字符[list]: 匹配[list]中的任意单个字符,或者一组单个字符 [a-z] [!list]: 匹配除list中的任意单个字符{string1,string2,...}:匹配string1,string2或更多字符串#rm-ffile*#cp*.conf/dir1#touchfile{1..5}
##4、bash中的引号(重点)
双引号"" :会把引号的内容当成整体来看待,允许通过$符号引用其他变量值
单引号’’ :会把引号的内容当成整体来看待,禁止引用其他变量值,shell中特殊符号都被视为普通字符
反撇号`` :反撇号和$()一样,引号或括号里的命令会优先执行,如果存在嵌套,反撇号不能用
[rootdir1]#echo"$(hostname)"server[rootdir1]#echo'$(hostname)'$(hostname) [rootdir1]#echo"hello world"helloworld[rootdir1]#echo'hello world'helloworld[rootdir1]#echo$(date+%F) 2018-11-22[rootdir1]#echo`echo$(date+%F)`2018-11-22[rootdir1]#echo`date+%F`2018-11-22[rootdir1]#echo`echo`date+%F``date+%F[rootdir1]#echo$(echo`date+%F`) 2018-11-22