标签:ado ext and span 便宜 -- arc echo 字符
grep最早由肯·汤普逊写成。原先是ed下的一个应用程序,名称来自于g/re/p(globally search a regular expression and print,以正则进行全域查找以及打印)。在ed下,输入g/re/p这个命令后,会将所有匹配‘定义样式’的字符串,以行为单位打印出,但是并不对原文件内容进行修改。grep命令在对一个或多个文件的内容进行基于模式搜索的情况下是非常有用的。模式可以是单个字符、多个字符、单个单词、或者是一个句子。当然最有用的还是正则。
1 grep match_pattern file_name #标记匹配颜色加 --color=auto 选项
2 grep "match_pattern" file_name
grep "match_pattern" file_1 file_2 file_3 ...
root@linux:~# grep -l root /etc/passwd /etc/shadow /etc/fstab
grep "text" -n file_name
cat file_name | grep "text" -n
grep "text" -n file_1 file_2 #多个文件
使用正则表达式 -E 选项:
grep -E "[1-9]+"
egrep "[1-9]+"
只输出文件中匹配到的部分 -o 选项:
echo this is a test line. | grep -o -E "[a-z]+\."
line.
echo this is a test line. | egrep -o "[a-z]+\."
line.
grep -v "match_pattern" file_name
#只在目录中所有的.php和.html文件中递归搜索字符 grep "main()" . -r --include *.{php,html} #在搜索结果中排除所有README文件 grep "main()" . -r --exclude "README" #在搜索结果中排除filelist文件列表里的文件 grep "main()" . -r --exclude-from filelist
grep -r root /etc/ #上面的命令将会递归的在/etc目录中查找“root”单词
grep ^$ /etc/shadow #由于/etc/shadow文件中没有空行,所以没有任何输出
echo this is a text line | grep -e "is" -e "line" -o
is
line
cat patfile
aaa bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o
root@Linux:~# cat grep_file
^root
root
false$
root@Linux:~# grep -f grep_file /etc/passwd
root@Linux:~# grep -cf file /etc/passwd #cf参数的顺序不能颠倒,file里定义要匹配的模式 2
a)使用-B参数输出匹配行的前4行 b)使用-A参数输出匹配行的后4行 c)使用-C参数输出匹配行的前后各4行
例15 -q 静默输出,用于测试
echo gun is not unix | grep -bo "not" 7:not #一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项 -b -o 一般总是配合使用。
标签:ado ext and span 便宜 -- arc echo 字符
原文地址:http://www.cnblogs.com/naodong/p/6913345.html