DAY7:文本处理工具及正则表达式
8月4号,主要学习内容如下: 一、抽取文本的工具:less,cat,head,tail,cut 二、分析文本的工具:wc,sort,diff,patch 二、grep及正则表达式 三、egrep扩展正则表达式 一、抽取文本的工具 1)文件查看命令:
2)分页查看工具
3)显示文本前或后行内容
4)按列抽取文本cut和合并文件paste
二、文本分析工具 1)文本数据统计 wc:计数行总数、单词总数、字符总数(和字节总数),可以对文件或STDIN中的数据运行 wc story.txt 39 237 1901 story.txt 行数 字数 字符数 -l 只计数行数 -w 只计数单词总数 -c 只计数字节总数 -m 只计数字符总数 2)文本排序 sort:把整理过的文本显示在STDOUT(默认按照字符大小排序) 不改变原始文件 sort [options] file(s) -n 执行按数值大小整理 -f 选项忽略(fold)字符串中的字符大小写 -u 选项(独特,unique)删除输出中的重复行 -t c 选项使用c做为字段界定符 -k X 选项按照使用c字符分隔的X列来整理 能够使用多次 3)除重 uniq:从输入中删除重复的前后相接的行 uniq [OPTION]... [FILE]... -c: 显示每行重复出现的次数 -d: 仅显示重复过的行 -u: 仅显示不曾重复的行:连续且完全相同方为重复 常和sort 命令一起配合使用: sort userlist.txt | uniq -c 4)比较文件 diff:逐行比较两个文件之间的区别, diff [OPTION]... [OLDFILE] [NEWFILE] 显示oldfile与newfile相比的不同和措施 diff foo.conf-broken foo.conf-works 5c5 (注明第5行有区别) < use_widgets = no --- > use_widgets = yes -u 显示变化行的上下文,默认3行(适用于补丁文件) diff /PATH/TO/OLDFILE /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE diff还可用于比较两个不同目录,显示其中每个文件的差别 patch:复制对文件改变(向文件打补丁) patch -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE -b 选项来自动备份改变了的文件 三、grep及正则表达式 1)Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具 grep,egrep(支持扩展正则表达式),fgrep(不支持正则表达式搜索) sed:stream editor,文本编辑工具 awk:Linux上的实现gawk,文本报告生成器 2)grep:Global search REgular expression and Print out the line 作用::文本搜索工具,根据用户指定的“模式”对目标文 本逐行进行匹配检查;打印匹配到的行; 模式:由正则表达式字符及文本字符所编写的过滤条件 grep [OPTIONS] PATTERN [FILE...] grep root /etc/passwd grep [OPTIONS] PATTERN [FILE...] grep root /etc/passwd 命令选项: --color=auto: 对匹配到的文本着色显示 -v: 显示不能够被pattern匹配到的行 -i: 忽略字符大小写 -n:显示匹配的行号 -c: 统计匹配的行数 -o: 仅显示匹配到的字符串 -q: 静默模式,不输出任何信息 (配合echo $? 可用于写脚本) -A #:after,同时显示后#行 -B #: before,前#行 -C #:context,前后各#行 -e:实现多个选项间的逻辑or关系 grep ?e ‘cat ’ -e ‘dog’ file -w:整行匹配整个单词 -E:使用ERE扩展的正则表达式 3)正则表达式
4)基本正则表达式
四、egrp及扩展的正则表达式 1)egrep egrep = grep -E egrep [OPTIONS] PATTERN [FILE...] 2)扩展正则表达式
3)fgrep 不支持正则表达式元字符:当无需用到元字符去编写模式时,使用fgrep更好 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |