五周第五次课(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.csdn.net/zenghui08/article/details/7938975

猜你喜欢

转载自blog.csdn.net/azure287/article/details/80072167
今日推荐