五周第五次课(11月17日)
8.10 shell特殊符号cut命令
“*” 任意个任意字符
“?”任意一个字符
“#” 注释字符
“\” 脱意字符
“|” 管道符
cut 截取字符串
-d 分隔符
-f 指定段号
-c 指定第几个字符
cat /etc/passwd | head -2 | cut -d “:” -f 1,3 #按“:”分割截取第1和第3段
cat /etc/passwd | head -2 | cut -d “:” -f 1-3 #按“:”分割截取第1到第3段
cat /etc/passwd | head -2 | cut -d “:” -c 4 #截取第4个字符
8.11 sort_wc_uniq命令
sort 排序,默认按阿斯玛排序从小到大排序
-n 以数字排序,特殊字符和字母都会认为是0
-r 反序
-t 分隔符
head /etc/passwd >> 1.txt
uniq 去重,需要先排序再去重,不然只会去重连续的两行
sort 2.txt | uniq -c
-c 统计出现次数
wc 统计
-l 统计行数
-m 统计字符数
-w 统计词
8.12 tee_tr_split命令
tee 和 >输出重定向 类似,tee重定向的同时还在屏幕显示
-a 追加
sort 2.txt | uniq -c > a.txt(重定向到a.txt,但是不会显示出来)
sort 2.txt | uniq -c |tee a.txt(重定向到a.txt,同时会显示出来)
tr 替换字符,tr ‘a’ ‘b’ ,大小写替换tr ‘[a-z]’ ‘[A-Z]’
echo “aminglinux” |tr ‘[al]’ ‘[AL]’ –> AmingLinux
split 切割,
-b 大小(默认单位字节)
-l 行数
split -b 1000M bigfile #拆分为1000M一个文件
split -l 1000 bigfile #拆分为1000行一个文件,文件名初始为xaa,xab累加,三位用完以后扩展到4位从xyx到xzaaa
split -b 100M a.txt abc #指定分割名字为abc前缀
8.13 shell特殊符号下
$变量前缀,!$组合,正则里面表示行尾
;分号表示多条命令写到一行,用分号分割
~ 用户家目录。正则表达式表示匹配符
& 放到命令后面。会把命令丢到后台执行
>正确输出重定向 ,>> 正确输出追加, 2> 错误重定向, 2>>错误重定向, &> 错误和正确同时输出
[] 指定字符中的一个,[0-9],[a-zA-Z],[abc]
|| 和 && ,用于命令之间,作为判断
||表示或者,前面命令执行成功时,后面的命令就不会执行了
&&表示and,前面执行成功才会继续执行后面的命令
[ -d aminglinux ] || mkdir aminglinux #判断amingling是否为目录,并且判断目录是否存在,
[ -d aminglinux ]如果判断是目录且存在这个目录就不会执行后面的mkdir,如果不存在这个目录就会执行后面的命令
相关测验题目:http://ask.apelearn.com/question/5437
扩展
1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112
2. Linux特殊符号大全http://ask.apelearn.com/question/7720
3. sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975