建设网站的条件,北京网站建设成都,南通企业网站,想开发自己的网站在线Linux命令查询工具
grep
强大的文本搜索工具
补充说明
grep#xff08;global search regular expression(RE) and print out the line#xff0c;全面搜索正则表达式并把行打印出来#xff09;是一种强大的文本搜索工具#xff0c;它能使用正则表达式搜索文本global search regular expression(RE) and print out the line全面搜索正则表达式并把行打印出来是一种强大的文本搜索工具它能使用正则表达式搜索文本并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用使用上十分灵活。
选项
-a --text # 不要忽略二进制数据。
-A lt;显示行数gt; --after-contextlt;显示行数gt; # 除了显示符合范本样式的那一行之外并显示该行之后的内容。
-b --byte-offset # 在显示符合范本样式的那一行之外并显示该行之前的内容。
-Blt;显示行数gt; --before-contextlt;显示行数gt; # 除了显示符合样式的那一行之外并显示该行之前的内容。
-c --count # 计算符合范本样式的列数。
-Clt;显示行数gt; --contextlt;显示行数gt;或-lt;显示行数gt; # 除了显示符合范本样式的那一列之外并显示该列之前后的内容。
-dlt;进行动作gt; --directorieslt;动作gt; # 当指定要查找的是目录而非文件时必须使用这项参数否则grep命令将回报信息并停止动作。
-elt;范本样式gt; --regexplt;范本样式gt; # 指定字符串作为查找文件内容的范本样式。
-E --extended-regexp # 将范本样式为延伸的普通表示法来使用意味着使用能使用扩展正则表达式。
-flt;范本文件gt; --filelt;规则文件gt; # 指定范本文件其内容有一个或多个范本样式让grep查找符合范本条件的文件内容格式为每一列的范本样式。
-F --fixed-regexp # 将范本样式视为固定字符串的列表。
-G --basic-regexp # 将范本样式视为普通的表示法来使用。
-h --no-filename # 在显示符合范本样式的那一列之前不标示该列所属的文件名称。
-H --with-filename # 在显示符合范本样式的那一列之前标示该列的文件名称。
-i --ignore-case # 忽略字符大小写的差别。
-l --file-with-matches # 列出文件内容符合指定的范本样式的文件名称。
-L --files-without-match # 列出文件内容不符合指定的范本样式的文件名称。
-n --line-number # 在显示符合范本样式的那一列之前标示出该列的编号。
-q --quiet或--silent # 不显示任何信息。
-R/-r --recursive # 此参数的效果和指定“-d recurse”参数相同。
-s --no-messages # 不显示错误信息。
-v --revert-match # 反转查找。
-V --version # 显示版本信息。
-w --word-regexp # 只显示全字符合的列。
-x --line-regexp # 只显示全列符合的列。
-y # 此参数效果跟“-i”相同。
-o # 只输出文件中匹配到的部分。
-m lt;numgt; --max-countlt;numgt; # 找到num行结果后停止查找用来限制匹配行数规则表达式
^ # 锚定行的开始 如^grep匹配所有以grep开头的行。
$ # 锚定行的结束 如grep$ 匹配所有以grep结尾的行。
. # 匹配一个非换行符的字符 如gr.p匹配gr后接一个任意字符然后是p。
* # 匹配零个或多个先前字符 如*grep匹配所有一个或多个空格后紧跟grep的行。
.* # 一起用代表任意字符。
[] # 匹配一个指定范围内的字符如[Gg]rep匹配Grep和grep。
[^] # 匹配一个不在指定范围内的字符如[^A-FH-Z]rep匹配不包含A-R和T-Z的一个字母开头紧跟rep的行。
\(..\) # 标记匹配字符如\(love\)love被标记为1。
\lt; # 锚定单词的开始如:\lt;grep匹配包含以grep开头的单词的行。
\gt; # 锚定单词的结束如grep\gt;匹配包含以grep结尾的单词的行。
x\{m\} # 重复字符xm次如0\{5\}匹配包含5个o的行。
x\{m,\} # 重复字符x,至少m次如o\{5,\}匹配至少有5个o的行。
x\{m,n\} # 重复字符x至少m次不多于n次如o\{5,10\}匹配5--10个o的行。
\w # 匹配文字和数字字符也就是[A-Za-z0-9]如G\w*p匹配以G后跟零个或多个文字或数字字符然后是p。
\W # \w的反置形式匹配一个或多个非单词字符如点号句号等。
\b # 单词锁定符如: \bgrep\b只匹配grep。grep命令常见用法
在文件中搜索一个单词命令会返回一个包含**“match_pattern”**的文本行
grep match_pattern file_name
grep match_pattern file_name在多个文件中查找
grep match_pattern file_1 file_2 file_3 ...输出除之外的所有行**-v**选项
grep -v match_pattern file_name标记匹配颜色**–colorauto**选项
grep match_pattern file_name --colorauto使用正则表达式**-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.统计文件或者文本中包含匹配字符串的行数**-c**选项
grep -c text file_name输出包含匹配字符串的行数**-n**选项
grep text -n file_name
# 或
cat file_name | grep text -n#多个文件
grep text -n file_1 file_2打印样式匹配所位于的字符或字节偏移
echo gun is not unix | grep -b -o not
7:not
#一行中字符串的字符便宜是从该行的第一个字符开始计算起始值为0。选项 **-b -o** 一般总是配合使用。搜索多个文件并查找匹配文本在哪些文件中
grep -l text file1 file2 file3...grep递归搜索文件
在多级目录中对文本进行递归搜索
grep text . -r -n
# .表示当前目录。忽略匹配样式中的字符大小写
echo hello world | grep -i HELLO
# hello选项**-e**制动多个匹配样式
echo this is a text line | grep -e is -e line -o
is
line#也可以使用 **-f** 选项来匹配多个样式在样式文件中逐行写出需要匹配的字符。
cat patfile
aaa
bbbecho aaa bbb ccc ddd eee | grep -f patfile -o在grep搜索结果中包括或者排除指定文件
# 只在目录中所有的.php和.html文件中递归搜索字符main()
grep main() . -r --include *.{php,html}# 在搜索结果中排除所有README文件
grep main() . -r --exclude README# 在搜索结果中排除filelist文件列表里的文件
grep main() . -r --exclude-from filelist使用0值字节后缀的grep与xargs
# 测试文件
echo aaa gt; file1
echo bbb gt; file2
echo aaa gt; file3grep aaa file* -lZ | xargs -0 rm# 执行后会删除file1和file3grep输出用-Z选项来指定以0值字节作为终结符文件名\0xargs -0 读取输入并用0值字节终结符分隔文件名然后删除匹配文件-Z通常和-l结合使用。grep静默输出
grep -q test filename
# 不会输出任何信息如果命令运行成功返回0失败则返回非0值。一般用于条件测试。打印出匹配文本之前或者之后的行
# 显示匹配某个结果之后的3行使用 -A 选项
seq 10 | grep 5 -A 3
5
6
7
8# 显示匹配某个结果之前的3行使用 -B 选项
seq 10 | grep 5 -B 3
2
3
4
5# 显示匹配某个结果的前三行和后三行使用 -C 选项
seq 10 | grep 5 -C 3
2
3
4
5
6
7
8# 如果匹配结果有多个会用“--”作为各匹配结果之间的分隔符
echo -e a\nb\nc\na\nb\nc | grep a -A 1
a
b
--
a
b在线Linux命令查询工具 原文链接