五周第五次课(4月24日)

8.10 shell特殊符号cut命令

* :任意个任意字符

?:任意一个字符

# :注释字符,以#开头的命令不生效

\ :脱义字符

五周第五次课(4月24日)


| :管道符

和管道符相关的命令,

cut:分割,-d分割符 -f指定段号 -c指定第几个字符

#cat /etc/passwd |head -3 |cut -d ":" -f 1-3     //以:为分割符,取前3段

五周第五次课(4月24日)

-c指定以第几个字符

# cat /etc/passwd |head -3 |cut  -c  2
五周第五次课(4月24日)


8.11 sort_wc_uniq命令

sort:排序,-n以数字排序,-r反序,-t分割符-kn1/-kn1,n2

#sort /etc/passwd

五周第五次课(4月24日)


sort -n 会以数字进行排序,字母和特殊符号都被认为是0

#sort  -n 1.txt

五周第五次课(4月24日)


#sort -nr 1.txt

五周第五次课(4月24日)


wc -l 统计行数

#wc -l 1.txt

五周第五次课(4月24日)


wc -m 统计字符数(包含隐藏字符)

#wc -m 2.txt

五周第五次课(4月24日)


wc -w 统计词数(以空白字符为分割符)

# wc -w 2.txt

五周第五次课(4月24日)


uniq去掉相邻的重复的内容

五周第五次课(4月24日)

可以看到,其实里面还是有重复的内容,uniq只能去掉相邻的重复内容,所以uniq经常和sort在一起用

#sort 2.txt |uniq

五周第五次课(4月24日)

-c统计重复次数

五周第五次课(4月24日)


8.12 tee_tr_split命令

tee 类似于输出重定向,并把结果输出在屏幕上

五周第五次课(4月24日)

tee -a  类似于追加重定向,同样也输出结果到屏幕

五周第五次课(4月24日)


tr 替换字符,tr 'a''b',大小写替换tr'[a-z]''[A-Z]'

# echo "xmlinux"|tr '[a-z]' '[A-Z]'

五周第五次课(4月24日)


split切割文件,-b大小(默认单位字节),-l 行数

#split -b 1000 a.txt  

五周第五次课(4月24日)

不指定文件名,就会生成以x开头的文件

也可以指定前缀

# split -b 50k a.txt  xm.

五周第五次课(4月24日)

还可以指定行数

# split -l 1000 a.txt

五周第五次课(4月24日)


8.13 shell特殊符号下

$变量前缀,!$组合,正则里表示行尾

;多条命令写到一行,用分号分割

五周第五次课(4月24日)

~用户家目录,后面正则表达式表示匹配符

&放命令到后面,会把命令丢到后台

>  >>  2>   2>>   &>

[]指定字符中的一个,[0-9],[a-zA-Z],[abc]

||和&&用在两条命令直接

||表示执行前面一条命令不成功才去执行后面的命令

五周第五次课(4月24日)

&&表示执行前面的一条命令成功了才会执行后面的命令

五周第五次课(4月24日)


判断一个目录是否存在:[-d 目录]

五周第五次课(4月24日)


相关测验题目: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