10月15日任务shell
8.10 shell特殊符号cut命令centos
8.11 sort_wc_uniq命令bash
8.12 tee_tr_split命令测试
8.13 shell特殊符号下this
#截取/etc/passwd的前十行的第1,2个字段 [root@centos7 ~]# cat /etc/passwd | head -n 5 | cut -d ":" -f 1,2 root:x bin:x daemon:x adm:x lp:x
[root@centos7 ~]# cat /etc/passwd | head -n 5 | cut -c 1 r b d a l
按ASCII码顺序排序内容centos7
[root@centos7 ~]# cat /etc/passwd | head -n 5 | sort -n adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash
[root@centos7 ~]# cat /etc/passwd | head -n 5 | sort -r root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin
# 按第三个字段的字母顺序排序 [root@centos7 ~]# cat /etc/passwd | head -n 5 | sort -t ":" -k 3 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
# 测试数据 [root@centos7 ~]# cat /etc/passwd | head -n 5 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
[root@centos7 ~]# cat /etc/passwd | head -n 5 | wc -l 5
[root@centos7 ~]# cat /etc/passwd | head -n 5 | wc -m / c 183
[root@centos7 ~]# cat /etc/passwd | head -n 5 | wc -w 5
cat -A 显示行尾的换行符spa
去除文本内的重复行,前提须要先排序code
[root@centos7 ~]# cat 1.txt | uniq num111 passwd this is a num111 passwd num111 | # 不排序 [root@centos7 ~]# cat 1.txt | uniq -c 1 num111 1 passwd this is a 1 num111 1 passwd 4 num111 1 | # 先排序再去重 [root@centos7 ~]# cat 1.txt | sort -n | uniq -c 1 | 6 num111 1 passwd 1 passwd this is a
重定向内容至文本的同时在终端显示排序
[root@centos7 ~]# cat /etc/passwd | head -n 5 | tee tee.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 [root@centos7 ~]# cat tee.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
[root@centos7 ~]# cat /etc/passwd | tail -n 1 | tee -a tee.txt castiel:x:1000:1000::/home/castiel:/bin/bash [root@centos7 ~]# cat tee.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 castiel:x:1000:1000::/home/castiel:/bin/bash
转换内容,tr进程
[root@centos7 ~]# echo "test" | tr "s" "S" teSt
split切割文件
# 测试文件 [root@centos7 tmp]# find / -type f -name "*.conf" -exec cat {} >> test.txt \; [root@centos7 tmp]# ll 总用量 676 -rw-r--r--. 1 root root 688355 9月 30 23:10 test.txt [root@centos7 tmp]# du -sh test.txt 676K test.txt
# 按大小进行切割 [root@centos7 tmp]# split -b 100K test.txt test- [root@centos7 tmp]# ll 总用量 1352 -rw-r--r--. 1 root root 102400 9月 30 23:11 test-aa -rw-r--r--. 1 root root 102400 9月 30 23:11 test-ab -rw-r--r--. 1 root root 102400 9月 30 23:11 test-ac -rw-r--r--. 1 root root 102400 9月 30 23:11 test-ad -rw-r--r--. 1 root root 102400 9月 30 23:11 test-ae -rw-r--r--. 1 root root 102400 9月 30 23:11 test-af -rw-r--r--. 1 root root 73955 9月 30 23:11 test-ag -rw-r--r--. 1 root root 688355 9月 30 23:10 test.txt [root@centos7 tmp]# rm -f test-*
切割时不指定文件前缀,将以特定命名
# 按行数进行分割 [root@centos7 tmp]# cat test.txt | wc -l 28439 [root@centos7 tmp]# split -l 7000 test.txt test- [root@centos7 tmp]# ll 总用量 1356 -rw-r--r--. 1 root root 259864 9月 30 23:13 test-aa -rw-r--r--. 1 root root 138784 9月 30 23:13 test-ab -rw-r--r--. 1 root root 105356 9月 30 23:13 test-ac -rw-r--r--. 1 root root 172792 9月 30 23:13 test-ad -rw-r--r--. 1 root root 11559 9月 30 23:13 test-ae -rw-r--r--. 1 root root 688355 9月 30 23:10 test.txt
[root@centos7 tmp]# ll 总用量 0 # 当前目录下,test目录不存在,返回错误代码1 [root@centos7 tmp]# [ -d test ] [root@centos7 tmp]# echo $? 1 # && :命令1返回错误,命令2--mkdir命令不执行 [root@centos7 tmp]# [ -d test ] && mkdir test [root@centos7 tmp]# echo $? 1 # || :命令1返回错误,执行mkdir命令 [root@centos7 tmp]# [ -d test ] || mkdir test [root@centos7 tmp]# echo $? 0 # 此时test目录已存在,命令1返回0,命令2不执行 [root@centos7 tmp]# [ -d test ] || mkdir test [root@centos7 tmp]# echo $? 0 [root@centos7 tmp]# ll 总用量 0 drwxr-xr-x. 2 root root 6 9月 30 23:31 test # 命令1执行正确,命令2也执行 [root@centos7 tmp]# [ -d test ] && mkdir test mkdir: 没法建立目录"test": 文件已存在