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": 文件已存在