shell特殊字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell特殊字符相关的知识,希望对你有一定的参考价值。
特殊符号
- 通配符,任意个字符
? 任意个字符
.#注释字符
\ 脱义字符
| 管道
几个和管道有关的命令
cut 选取信息,针对行进行分析
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
sort 排序,默认以ASC码排序
[[email protected] ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
bin:x:1:1:bin:/bin:/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
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
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
sort -r 倒序
wc 统计
-l 统计行数 -m 统计字符数 -w 统计词
[[email protected] ~]# wc -l 1.txt
29 1.txt
[[email protected] ~]# wc -m 1.txt
468 1.txt
[[email protected] ~]# wc -w 1.txt
27 1.txt
uniq 排序 -c 去重
[[email protected] ~]# sort 2.txt
1
1
1
123
123
2
2
2
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
3
abc
abc 1111,222
[[email protected] ~]# sort 2.txt | uniq
1
123
2
21
3
abc
abc 1111,222
[[email protected] ~]# sort 2.txt | uniq -c
3 1
2 123
3 2
21 21
1 3
1 abc
1 abc 1111,222
tee和 >输出重定向类似
[[email protected] ~]# >a.txt #清空a.txt内容
[[email protected] ~]# cat a.txt #查看
[[email protected] ~]# sort 2.txt | uniq -c | tee a.txt #重定向并显示
3 1
2 123
3 2
21 21
1 3
1 abc
1 abc 1111,222
[[email protected] ~]# cat a.txt
3 1
2 123
3 2
21 21
1 3
1 abc
1 abc 1111,222
[[email protected] ~]# sort 2.txt | uniq -c | tee -a a.txt #追加
3 1
2 123
3 2
21 21
1 3
1 abc
1 abc 1111,222
[[email protected] ~]# cat a.txt #查看内容
2 123
3 2
21 21
1 3
1 abc
1 abc 1111,222
3 1
2 123
3 2
21 21
1 3
1 abc
1 abc 1111,222
tr 替换字符
[[email protected] ~]# echo "aminglinux" |tr ‘[al]‘ ‘[AL]‘
AmingLinux
[[email protected] ~]# echo "aminglinux" |tr ‘a‘ ‘A‘
Aminglinux
split 切割
[[email protected] test]# split -b 100k a.txt
[[email protected] test]# ls
a.txt xaa xab
[[email protected] test]# du -sh
128K a.txt
100K xaa
28K xab
[[email protected] test]# split -b 100k a.txt abc. #指定大小
[[email protected] test]# ls
abc.aa abc.ab a.txt
[[email protected] test]# split -l 1000 a.txt #指定行
[[email protected] test]# ls -l
总用量 260
-rw-r--r--. 1 root root 129633 1月 13 07:31 a.txt
-rw-r--r--. 1 root root 41537 1月 13 07:32 xaa
-rw-r--r--. 1 root root 35466 1月 13 07:32 xab
-rw-r--r--. 1 root root 36841 1月 13 07:32 xac
-rw-r--r--. 1 root root 15789 1月 13 07:32 xad
[[email protected] test]# wc -l
3549 a.txt
1000 xaa
1000 xab
1000 xac
549 xad
7098 总用量
特殊符号
$变量前缀
!$组合,正则里面表示行尾
;多行命令写到一行,用;分割
~用户家目录,正则表达式表示匹配符
&放在命令后,会把命令挂起在后台
>> 2> 2>> &>
[] 指定字符的一个,[0-9][a-z][A-Z]||和&& 用于命令中间的逻辑关系
[[email protected] ~]# ls 1.txt ;wc -l 2.txt
1.txt
32 2.txt
[[email protected] ~]# ls 1.txt || wc -l 2.txt
1.txt
当前面命令成功,不执行后面的命令
[[email protected] ~]# ls 1.txt && wc -l 2.txt
1.txt
32 2.txt
[[email protected] ~]# ls 1a.txt && wc -l 2.txt
ls: 无法访问1a.txt: 没有那个文件或目录
当前面的命令不成功,不执行后面的命令
[[email protected] ~]# [ -d aminglinux ] || mkdir aminglinux
如果aminglinux 目录不存在,就创建aminglinux目录
[-d n]固定格式
[[email protected] ~]# ls
1.txt 2.txt 3.txt aaaa.txt aminglinux anaconda-ks.cfg a.txt; :q test
[[email protected] ~]# [ -d aminglinux ] && mkdir aminglinux
mkdir: 无法创建目录"aminglinux": 文件已存在
[[email protected] ~]# [ -d aminglinux ] || mkdir aminglinux
以上是关于shell特殊字符的主要内容,如果未能解决你的问题,请参考以下文章