一、shell特殊符号
-
shell中的一些特殊符号:
*:表示任意个任意字符
?:表示任意单个字符
#:表示注释字符
\ :表示脱义字符
|:表示管道符
二、cut命令
-
cut命令是用来分割
用法: cut -d 指定分隔符 -f 指定段号 -c 指定第几个字符
-
示例:
1、 以":"分割,截取passwd文件的第一段
cat /etc/passwd |cut -d ":" -f 1
2、截取pass文件第一行
三、sort命令
-
sort命令是用来进行排序
用法:sort -n 以数字进行排序 -r 反序 ,-t 分隔符(一般不使用)
-
注意点:
sort默认的排序是按ascii码进行排序
sort一般和uniq结合起来使用
如何按照数字排序那么特殊符号和字母大小默认认为是0
-
示例:
1、不加参数,默认是ascii码进行排序
2、以数字进行排序,字母和特殊符号会被认为是0,所以字母和特殊符号都在数字之上
3、反序
四、wc命令
-
wc命令是用来统计
用法:wc -l 统计行数 -m统计字符数 -w 统计词数
示例:
1、统计行数
2、统计字符数
3、统计词数
五、uniq命令
-
uniq命令是用来去重的,一般都是结合sort来进行使用。
用法:uniq -c 统计重复行数
-
示例:
1、去重
2、统计重复行数
六、tee_tr_split命令
-
tee命令
tee命令和输出重定向(>)类似,不同的是tee会把重定向的内容打印到屏幕。tee也支持追加,加个-a参数即可。
示例:
-
tr命令
tr命令用于替换字符
示例:
1、替换字母
2、替换所有的字母
-
split命令
split命令用于切割,可以把一个大文件切割为小文件。
用法:split -b 按照大小进行切割,默认单位为字节。 -l 指定行数进行切割
-
示例
首先生成一个大一点的文件
find /etc -name "*.cnf" -exec cat {} >> 01.txt \;
1、按照100k 大小进行分割,如果不指定名称系统会默认生成文件名。
split -b 100k 01.txt
2、指定文件名
split -b 100k 01.txt wxy
3、指定行数分割
split -l 10000 01.txt
七、shell特殊符号下
-
$:变量前缀
-
!$:正则中表示行尾
-
; :多条命令写到一行 用";"分割
如下:同时执行ll和统计命令
-
~:用户家目录,正则中表示匹配符
-
&:放在命令后门表示后台执行
-
">":正确重定向
-
">>":追加重定向
-
2> :错误重定向
-
2>> :错误追加重定向
-
&> : 正确错误同时重定向
-
[]:指定字符中的一个,如[0-9],[a-zA-z]
-
|| && 用在命令之间。||表示如果前面命令执行成功则不会执行后面的,&&表示前面的命令执行成功才会执行后面的命令
示例:
|| 前面ll命令执行成功后,后面wc命令则不会执行
判断一个目录是否存在,如果不存在则创建
[ -d wxy ] || mkdir wxy
-d 是判断一个目录是否存在
改为&&就会报目录已存在