2010.7.11
文件内容查询命令:grep,egrep,fgrep
grep:
Global search Regular Expression and Print out the line(全面搜索正则表达式并打印之)
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep会对匹配一个或多个正则表达式(pattern)的文本进行搜索,并只输出匹配的文本而不影响原有内容。
命令格式: grep [option] [pattern] [file1,file2,…]
常用选项:
-c 只显示匹配行的数量
-i 不区分大小写
-n 对匹配到的行进行编辑
-v 只显示不匹配的行
grep常用元字符:
v ^ 锚定行的开始
v $ 锚定行的结束
v . 匹配一个非换行符的字符
v * 匹配零个或多个先前字符
v [ ] 匹配一个指定范围内的字符
v \< 锚定单词的开始
v \> 锚定单词的结束
v \b 单词锁定符,如: '\bgrep\b'只匹配grep
v \w 匹配文字和数字字符,也就是[A-Za-z0-9_]
v x\{m\} 重复字符x,m次,如:'0\{5\}'匹配包含5个0的行
grep 命令一次只能搜索一个指定的模式。为了可以指定多模式,我们可以用egrep。egrep命令检索扩展的正则表达式(包括表达式组和可选项), egrep等价于 grep –E
egrep新增的元字符:
v + 匹配一个或多个加号前的字符
v ? 匹配零个或一个前导字符
v a|b 匹配a或b
v * 匹配零个或多个先前字符
v ( ) 字符组
fgrep 命令检索固定字符串,它不识别正则表达式,是快速搜索命令。
文本处理命令:sort,uniq
sort命令的功能是对文件中的各行进行排序
格式:sort [opt] file1,file2…
根据从输入行抽取的一个或多个关键字进行比较来完成排序,默认以整行为关键字按ASCII字符顺序进行排序。
sort常用选项:
v -o 输出文件 将排序输出写到输出文件中而不是标准输出
v -f 忽略字母的大小写
v -r 按逆序输出排序结果
uniq命令用以删除指定文件中重复的行
格式: uniq [opt] filename
常用选项:
v -c 显示输出中,在每行行首加上本行在文件中出现的次数
v -d 只显示重复行
v -u 只显示文件中不重复的各行
文件比较和应用更改命令:比较命令diff,应用更改命令patch。
diff:用以逐行比较两个文本文件,并列出其不同之处。
格式:diff [opt] from_file to_file
常用选项:
v -b 忽略行尾空格,且视字符串中的多个空格为1个
v -c 采用上下文件输出格式
v -C n 采用上下文格式输出,且只提供n行上下文
v -u 采用统一输出格式
v -r 当指定from_file和to_file为目录时,则递归比较目录中
的文件
patch:通过读入patch命令文件(可以从标准输入),对目标文件进行修改。通常patch使用diff的结果来完成打补丁的工作
格式:patch [options] [originalfile] [patchfile
如果需要修改的是目录,一般都必须在patchfile中记录目录下的各个文件名;绝大多数情况下,patch都用以下这种简单的方式使用:
patch -p[num] <patchfile
-p 0 使用完整路径名
-p 1 除去前导斜杠
-p n 除去前导n个斜杠