shell特殊符号

shell基础(下)
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    按照行数

shell基础(下)
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