五周第五次课(4月24日)
8.10 shell特殊符号cut命令
* :任意个任意字符
?:任意一个字符
# :注释字符,以#开头的命令不生效
\ :脱义字符
| :管道符
和管道符相关的命令,
cut:分割,-d分割符 -f指定段号 -c指定第几个字符
#cat /etc/passwd |head -3 |cut -d ":" -f 1-3 //以:为分割符,取前3段
-c指定以第几个字符
# cat /etc/passwd |head -3 |cut -c 2
8.11 sort_wc_uniq命令
sort:排序,-n以数字排序,-r反序,-t分割符-kn1/-kn1,n2
#sort /etc/passwd
sort -n 会以数字进行排序,字母和特殊符号都被认为是0
#sort -n 1.txt
#sort -nr 1.txt
wc -l 统计行数
#wc -l 1.txt
wc -m 统计字符数(包含隐藏字符)
#wc -m 2.txt
wc -w 统计词数(以空白字符为分割符)
# wc -w 2.txt
uniq去掉相邻的重复的内容
可以看到,其实里面还是有重复的内容,uniq只能去掉相邻的重复内容,所以uniq经常和sort在一起用
#sort 2.txt |uniq
-c统计重复次数
8.12 tee_tr_split命令
tee 类似于输出重定向,并把结果输出在屏幕上
tee -a 类似于追加重定向,同样也输出结果到屏幕
tr 替换字符,tr 'a''b',大小写替换tr'[a-z]''[A-Z]'
# echo "xmlinux"|tr '[a-z]' '[A-Z]'
split切割文件,-b大小(默认单位字节),-l 行数
#split -b 1000 a.txt
不指定文件名,就会生成以x开头的文件
也可以指定前缀
# split -b 50k a.txt xm.
还可以指定行数
# split -l 1000 a.txt
8.13 shell特殊符号下
$变量前缀,!$组合,正则里表示行尾
;多条命令写到一行,用分号分割
~用户家目录,后面正则表达式表示匹配符
&放命令到后面,会把命令丢到后台
> >> 2> 2>> &>
[]指定字符中的一个,[0-9],[a-zA-Z],[abc]
||和&&用在两条命令直接
||表示执行前面一条命令不成功才去执行后面的命令
&&表示执行前面的一条命令成功了才会执行后面的命令
判断一个目录是否存在:[-d 目录]
相关测验题目: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.****.net/zenghui08/article/details/7938975