shell基礎(下)
阿新 • • 發佈:2018-01-13
water operator opera vpd watermark 字母 ffffff 文件 特殊符號 shell特殊符號
1.cut命令:
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1
root
bin
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3
root:x:0
bin:x:1
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -c 4
t
:
2.sort,排序
[root@weix01 ~]# sort /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin
[root@weix01 ~]# sort 1.txt
<
>
{
13
2222
2 2.txt
333
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
[root@weix01 ~]# sort -n 1.txt #-n 字母和特殊字符當做0 < > { 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 halt:x:7:0:halt:/sbin:/sbin/halt lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin *qweq root:x:0:0:root:/root:/bin/bash shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown sync:x:5:0:sync:/sbin:/bin/sync 2 2.txt 13 333 2222
3.wc:
[root@weix01 ~]# wc -l 1.txt #統計行數
19 1.txt
[root@weix01 ~]# wc -m 1.txt #統計字符數
418 1.txt
[root@weix01 ~]# wc -w 1.txt #統計詞
19 1.txt
4.uniq:去重,
[root@weix01 ~]# uniq 2.txt -bash: lsaaa: 未找到命令 123 abc 123 abc 1 2 [root@weix01 ~]# cat 2.txt -bash: lsaaa: 未找到命令 -bash: lsaaa: 未找到命令 123 abc 123 abc 1 1 2
5.排序再去重:
[root@weix01 ~]# sort 2.txt
1
1
123
123
2
abc
abc
-bash: lsaaa: 未找到命令
-bash: lsaaa: 未找到命令
[root@weix01 ~]# sort 2.txt |uniq
1
123
2
abc
-bash: lsaaa: 未找到命令
[root@weix01 ~]# sort 2.txt |uniq -c #去重並統計出現次數
2 1
2 123
1 2
2 abc
2 -bash: lsaaa: 未找到命令
6.tee命令:類似重定向
[root@weix01 ~]# sort 2.txt |uniq -c |tee a.txt
2 1
2 123
1 2
2 abc
2 -bash: lsaaa: 未找到命令
[root@weix01 ~]# cat a.txt
2 1
2 123
1 2
2 abc
2 -bash: lsaaa: 未找到命令
[root@weix01 ~]# sort 2.txt |uniq -c |tee -a a.txt #-a 追加
2 1
2 123
1 2
2 abc
2 -bash: lsaaa: 未找到命令
[root@weix01 ~]# cat a.txt
2 1
2 123
1 2
2 abc
2 -bash: lsaaa: 未找到命令
2 1
2 123
1 2
2 abc
2 -bash: lsaaa: 未找到命令
7.tr命令:替換字符:
[root@weix01 ~]# echo "weixlinux" |tr ‘[wl]‘ ‘[WL]‘
WeixLinux
[root@weix01 ~]# echo "weixlinux" |tr ‘w‘ ‘W‘
Weixlinux
[root@weix01 ~]# echo "weixlinux" |tr ‘[a-z]‘ ‘[A-Z]‘
WEIXLINUX
[root@weix01 ~]# echo "weixlinux" |tr ‘[a-z]‘ ‘1‘
111111111
8.split:切割
-b 按照大小
-l 按照行數
9.||:前面命令執行成功,後面命令不再執行,如果前面命令執行不成功,後面會執行
[root@weix01 ~]# ls 1.txt || wc -l 2.txt
1.txt
[root@weix01 ~]# ls 3.txt || wc -l 2.txt
ls: 無法訪問3.txt: 沒有那個文件或目錄
9 2.txt
10.&&:前面命令執行成功,後面才執行
[root@weix01 ~]# ls 3.txt && wc -l 2.txt
ls: 無法訪問3.txt: 沒有那個文件或目錄
[root@weix01 ~]# ls 1.txt && wc -l 2.txt
1.txt
9 2.txt
shell基礎(下)