一、特殊符号
* 任意个任意字符
? 任意一个字符
# 注释字符
\ 脱意字符:取消原来的意思,变成单纯的字符
| 管道符
二、和管道符相关的命令
CUT 截取字符串
-d 分隔符
-f 指定段号
-c 指定第几个字符
cat 1.txt | cut -d: -f 2 #从:处开始分隔,取前两段
SORT 排序
默认按照ASCII排序
-n 以数字排序 (字母和符号会被识别成0)
-r 倒序
-t 分隔符 (指定第几段去排序)
WC 统计
-l 统计行数
-m 统计字符数(换行符$也在内)
-w 统计单词词数(一般以空格 空白字符之类的作为区分)
UNIQ 去重复
要先排序再去重,去除相邻行数的重复内容
-c 统计重复次数
cut、sort、wc、uniq命令会对文件进行操作,但是不会改变文件内容
TEE
和输出重定向>类似,重定向同时也在屏幕上显示
sort 2.txt | unit -c | tee a.txt #对2.txt进行排序并去重,最后重定向到a.txt中并打印在屏幕上
-a 追加
TR 替换字符
echo “aminglinux” | tr ‘[al]' '[AL]' 将al替换成AL
SPLIT 切割
-b 针对大小(默认单位字节)默认xa*往后排序,不够用后会继续增加文件名的位数,但第一位X不会变。也可以指定文件名称的前缀
-l 针对行数
三、shell特殊符号
$ 变量前缀,!$是一个组合,在正则里面表示行尾
; 多条命令之间用;分隔
~ 用户家目录,在正则内表示匹配符
& 放到命令后面,会把命令扔到后台
> ,>>,2>,2>>,&> 正确重定向,正确追加重定向,错误重定向,错误追加重定向,所有内容重定向
[ ] 指定字符中的一个,[0-9],[a-z]
|| 用在shell中表示如果第一条命令执行成功,就不会执行第二条命令
&& 在shell中的用法和||相反(只有前面的命令成功了,才会执行后面的命令)