8.10 shell特殊符号cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符号下
扩展
- source exec 区别 http://alsww.blog.51cto.com/2001924/1113112
- Linux特殊符号大全 http://ask.apelearn.com/question/7720
- sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975
shell特殊符号总结
- 表示任意个任意字符,? 表示任意一个字符。这两个是比较常见的通配符,windows下也常用。
shell脚本中是注释字符。终端命令提示符#默认表示root用户,普通用户是$。
\ 是脱义字符。/是斜杠,我以前会把两个符号记混。linux中斜杠使用更多一些,比如目录路径、终端命令换行等。斜杠是横杠左端被压下,我是用“先左后右”“左为尊左常用”来记忆区分这两个符号的。windows下目录路径用的分隔符号与linux相反。
| 管道符是将符号左边命令的标准输出作为符号右边的标准输入参数。管道在shell脚本中十分重要。shell脚本语言没有其他编程语言的函数库,不过shell可以调用linux安装的软件工具,尤其是集成在linux发行版的小工具。下面再介绍几个linux附带工具。
cut 文本分割工具,参数有:-d 分隔符,-f 指定段号,-c 指定第几个字符。示例cut -d ":" -f 2 a.txt
就是将a.txt以冒号做标志分隔每行,然后标准输出第二段。
sort 文本排序工具,参数有:-n 以数字排序,字母和符号以零处理,-r 反序排序,-t 指定分隔符常与-k搭配使用,-kn1/-kn1,n2 指定第几段排序,先要用-t指定怎样分隔。sort工具默认用ascii码排序。
wc 文本统计工具,参数有:-l 统计行数,-m 统计字符数,-w 统计词。统计词数时是以空格区分词的,“a,b”中间没有空格(一个或多个)则按一个词算。
uniq 文本去重工具,参数有:-c统计行数。uniq经常与sort一起使用,要先排序再去重。
tee 和>类似,重定向的同时还在屏幕显示。参数-a 和>>类似,用于文本后追加。
tr 替换字符。示例tr 'a' 'b'
将a替换为b。如果是大小写替换:tr '[a-z]' '[A-Z]'
split 文本切割工具,参数有:-b 指定切割后分文件大小(默认单位为字节),-l 指定切割后行数。split命令最后可以指定切割后的文件前缀,例如split -b 10M 1.txt abc
切割1.txt,切割后的文件以abc开头,每个文件10M。
shell特殊符号总结
$
变量前缀,!$
表示上一条命令最后的参数。$ 在正则表达式中表示行尾。
; 多条命令写到一行,用分号分割。
~ 用户家目录。正则表达式中表示匹配符。
& 放到命令后面,会把命令放到后台运行。也可以表示标准输出和标准错误,例如&> 1.txt
表示将标准输出和错误输出重定向到1.txt。
> >> 2> 2>> &>
是常用的重定向和重定向追加的几个形式。
[ ] 表示指定总括号中字符中的一个,例如[0-9]表示0-9任一数字,[a-zA-Z]表示任一小写或大写字母,[abc]表示a、b、c中的一个。
|| 和 && 表示逻辑,用于命令之间。command1 && command2 表示执行command1成功后才执行command2。command1 || command2 表示执行command1后执行command2,有一个命令成功则表示这个语句成功(即,如果两条命令有一条成功,则echo $?
返回0)