shell编程学习(4)

[size=x-large]======================================================================
第四篇
======================================================================[/size]
[size=large]1、创建和使用函数[/size]
name(){
list;
}
[size=large]2、head和tail命令[/size]
head -n file :显示文件的前n行
tail -n file :显示文件的后n行
tail -f file :查看正在被写入的文件
[size=large]3、使用grep命令[/size]
grep word file 区分大小写
grep -i word file 不区分大小写
grep -v word file 不包含特殊单词的行
grep -n word file 显示行
grep -l word file1,file2,file3 列出包含特殊单词的文件
[size=large]4、统计单词数[/size]
wc:统计指定文件中的字节数、字数、行数, 并将统计结果显示输出
tr:将一个集合中的所有字符改成另一个集合中的所有字符。有时也可用于删除字符。
sort:为输入文件中的行进行分类,若没有指定输入文件,它为STDIN中给出的行分类。
uniq:打印出文件中所有唯一行。
[size=large]5、统计单词数举例[/size]
tr 'set1' 'set2' < file:将file中所有set1字符转换成set2字符
tr '!?":;{}(),.' ' ' < filename:替换基本标点符号
tr -s 'set1' :压缩set1,一般用于压缩空格
tr '!?":;\[\]{}(),.\t\n-' ' ' < file | tr 'A-Z' 'a-z'|tr ' ' '\n'| sort 排序文件中所有单词
sort -u 去掉所有重复的单词
uniq 只为重复行保留一行作为副本
tr '!?":;\[\]{}(),.\t\n-' ' ' < file | tr 'A-Z' 'a-z'|tr -s|tr ' ' '\n'| sort | uniq -c | sort -rn | head 重复次数最多的单词
tr '[:punct:]' ' ' < getopt.log | tr '[:space:]' ' ' | tr 'A-Z' 'a-z'|tr -s ' ' |tr ' ' '\n'| sort | uniq -c | sort -rn |head 不带任何标点符号的
[size=large]6、tr可以识别的标识[/size]
alnum 字母和数字
alpha 字母
blank 水平白色空格
cntrl 控制字符
digit 数字
graph 可打印字符,不包括空格
lower 小写字符
print 可打印字符,包括空格
punct 标点符号
space 水平或垂直空格
upper 大写字符
xdigt 16进制数字
[size=large]7、awk和sed命令[/size]
如何执行:
1)从输入文件中读取一行
2)为该行做一个拷贝
3)在该行上执行所给的脚本script
4)为下一行重复1)
awk/sed '/pattern/action' filenames
[size=large]8、当awk或sed正在执行一个脚本时[/size]
1)顺序搜索每个模式pattern,直到发生一个匹配
2)当发生匹配时,为输入行执行相应的动作(action)
3)当action执行完毕,到达下一个模式(pattern)并重复1)
4)当所有模式都试过一遍,读取下一行
[size=large]9、正则表达式[/size]
正则表达式中可以使用
普通字符:包括大小写字母、数字、字符
元字符:是指在正则表达式中有特殊含义的、可以被扩展从而匹配普通字符的字符。
用于正则表达式的元字符
. 匹配任何除换行符外的单个字符
* 匹配恰处于*字符前的零个或多个所给的字符
[chars] 匹配在chars中出现的任意一个字符,chars是一个字符序列。
^ 匹配一行的开始
$ 匹配一行的结尾
\ 用于消除通配符
[size=large]10、一些有用的正则表达方式[/size]
空行 /^$/
整行 /^.*$/
一个或多个空 / * /
HTML或XML标记 /<[^>][^>]*/
有效的URL /[a-zA-Z][a-zA-Z]*:\/\/[a-zA-Z0-9][a-zA-Z0-9\.]*.*/
美元数量格式 /\$[0-9]*\.[0-9][0-9]/
[size=large]11、sed可以使用的action[/size]
p 打印该行
d 删除该行
s/pattern1/pattern2/ 用第二种模式pattern2替换第一种模式pattern1

======================================================================
以上内容为本人学习的一点体会和总结,如有不正确之处,请指出,不甚感激
======================================================================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值