首页 > 编程知识 正文

linux进入图形界面(linux more命令详解)

时间:2023-05-03 19:55:54 阅读:96185 作者:2190

简介

Grep(全局搜索正则表达式(re)并打印出行)是一个功能强大的文本搜索工具,可以使用正则表达式搜索文本并打印出匹配的行。

Unix grep系列包括grep、egrep和fgrep。egrep和fgrep的命令与grep的命令仅略有不同。Egrep是grep的扩展,它支持更多的re元字符。fgrep是固定grep或快速grep。他们把所有的字母都当作单词,也就是说,正则表达式中的元字符回到它们自己的字面意思,不再特殊。在linux上使用GNU版本的grep。它更强大。您可以通过-G、-E和-F命令行选项使用egrep和fgrep的功能。

Grep是这样工作的。它在一个或多个文件中搜索字符串模板。如果模板包含空格,则必须引用,模板后的所有字符串都视为文件名。搜索结果被发送到标准输出,这不会影响原始文件的内容。Grep可以在shell脚本中使用,因为grep通过返回一个状态值来指示搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索到的文件不存在,则返回2。我们可以使用这些返回值来进行一些自动文本处理。

命令格式:grep[选项]模式文件

grep的常见选项:

-V:打印grep的版本。-E:将PATTERN解释为扩展正则表达式相当于使用了egrep。Or operation -F :将PATTERN解释为由换行符分隔的固定字符串列表,其中任何一个都必须匹配。这相当于使用fgrep。-G:使用模板样式作为普通表示。这是默认值。Grep不管有没有它都可以用。

匹配选项:-e :使用PATTER作为模式。这可用于指定多种搜索模式或保护以连字符(-)开头的模式。指定一个字符串作为查找文件内容的样式。-f :指定一个规则文件,其内容包含一个或多个规则样式,并让grep查找满足规则条件的文件内容,格式为每行一个规则样式。-i :搜索时忽略大小写-v:反向匹配,选择不匹配的内容。-w:匹配整个单词,与单词完全匹配,单词两边必须是非字符符号(即不能是字母数字或下划线)-x:只选择与整行完全匹配的匹配项。精确匹配整行(包括行首行尾的不可见空格)-y:这个参数的效果和指定“-i”参数的效果一样。常规输出控制选项:

-c:抑制正常输出;而是为每个输入文件打印匹配行数。-color [=when]:让关键字高亮显示,如- color=auto-L-l:列出内容不符合指定模板样式的文件名-l :列出内容符合指定模板样式的文件名。-m num:当匹配内容的行数达到num rows时,grep停止搜索并输出停止前搜索的匹配内容-o:只输出特定的匹配字符串,但不会输出匹配行中的其他内容-q: Quiet模式,不会有输出内容,如果找到匹配内容,则返回0;如果没有找到匹配的内容,它将返回非0-s:在搜索过程中,它不会输出任何错误消息。-q和-s选项由于与其他系统的grep兼容,shell脚本应该避免使用-q和-s,而是应该将标准和错误输出重定向到/dev/null。输出行前缀控制:

-b:输出时在每个匹配行(或匹配字符串)前追加一个偏移量(从文件第一个字符到匹配内容的字节数);-H:在每个匹配行前加上文件名,一起输出(用于搜索单个文件)。搜索多个文件时,默认情况下会输出文件。-h:禁用输出中文件名的前缀。无论搜索多少文件,直到内容匹配后才会输出文件名。

- LABEL=LABEL:将标准输入的实际输入显示为文件标签的输入。这在实现zgrep之类的工具时特别有用,比如gzip-CD foo.gz | grep-label=foo-h .另请参阅-H选项。-n:输出匹配的内容及其行号。-T:初始标签确保实际行内容的第一个字符在制表位,这样对齐标签看起来就正常了。标签被添加在匹配信息和它前面的附加信息之间,以使格式整洁。

上下文控制选项:-A编号:匹配搜索到的行及其下的编号-b编号:匹配搜索到的行及其上的编号-C编号:匹配搜索到的行及其下的编号文件和目录选择选项:

-a:将二进制文件视为文本;这相当于- binary-files=text选项。不要忽略二进制数据。- binary-files=TYPE:如果文件的前几个字节表示该文件包含二进制数据,则假设该文件属于TYPE类型。默认情况下,TYPE是二进制的,grep通常输出一行消息。二进制文件匹配,或者如果不匹配,则没有消息。如果TYPE不匹配,grep假设二进制文件不匹配;这相当于-I选项。如果类型是文本,grep处理一个二进制文件,如果它是文本;这相当于-a选项。警告:grep - binary-files=如果输出是终端,可能会输出文本二进制垃圾。

能有讨厌的副作用终端驱动程序将其中的一些解释为命令。-D:如果输入文件是设备,FIFO或套接字,请使用ACTION处理。默认情况下,读取ACTION,这意味着设备被读取,就像它们是普通文件一样。如果跳过ACTION,设备为 默默地跳过。

-d: 如果输入文件是目录,请使用ACTION处理它。默认情况下,ACTION是读的,这意味着目录被读取,就像它们是普通文件一样。如果跳过ACTION,目录将静默跳过。如果ACTION是recurse,grep将递归读取每个目录下的所有文件;这是相当于-r选项。

--exclude=GLOB:跳过基本名称与GLOB匹配的文件(使用通配符匹配)。文件名glob可以使用*,?和[...]作为通配符,和引用通配符或反斜杠字符。搜索其文件名和GLOB通配符相匹配的文件的内容来查找匹配使用方法:grep -H --exclude=c* "old" ./* c*是通配文件名的通配符./* 指定需要先通配文件名的文件的范围,必须要给*,不然就匹配不出内容,(如果不给*,带上-r选项也可以匹配)--exclude-from = FILE:在文件中编写通配方案,grep将不会到匹配方案中文件名的文件去查找匹配内容--exclude-dir = DIR:匹配一个目录下的很多内容同时还要让一些子目录不接受匹配,就使用此选项。--include = GLOB:仅搜索其基本名称与GLOB匹配的文件(使用--exclude下所述的通配符匹配)。

-R ,-r :以递归方式读取每个目录下的所有文件; 这相当于-d recurse选项。

其他选项:--line-buffered: 在输出上使用行缓冲。这可能会导致性能损失。--mmap:启用mmap系统调用代替read系统调用-U:将文件视为二进制。-z:将输入视为一组行,每一行由一个零字节(ASCII NUL字符)而不是a终止新队。与-Z或--null选项一样,此选项可以与排序-z等命令一起使用来处理任意文件名。-a --text #不要忽略二进制的数据。 将 binary 文件以 text 文件的方式搜寻数据 -A<显示行数> --after-context=<显示行数> #除了显示符合范本样式的那一列之外,并显示该行之后的内容。 -b --byte-offset #在显示符合样式的那一行之前,标示出该行第一个字符的编号。 -B<显示行数> --before-context=<显示行数> #除了显示符合样式的那一行之外,并显示该行之前的内容。 -c --count #计算符合样式的行数。 -C<显示行数> --context=<显示行数>或-<显示行数> #除了显示符合样式的那一行之外,并显示该行之前后的内容。 -d <动作> --directories=<动作> #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。 -e<范本样式> --regexp=<范本样式> #指定字符串做为查找文件内容的样式。 -E --extended-regexp #将样式为延伸的普通表示法来使用。 -f<规则文件> --file=<规则文件> #指定规则文件,其内容含有一个或多个规则样式,让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 --recursive #此参数的效果和指定“-d recurse”参数相同。 -s --no-messages #不显示错误信息。 -v --revert-match #显示不包含匹配文本的所有行。 -V --version #显示版本信息。 -w --word-regexp #只显示全字符合的列。 -x --line-regexp #只显示全列符合的列。 -y #此参数的效果和指定“-i”参数相同。--color=auto :可以将找到的关键词部分加上颜色的显示

使用实例:

一、常用用法

grep -i pattern files :

不区分大小写地搜索。默认情况区分大小写,

grep -l pattern files :

只列出匹配的文件名,

grep -L pattern files :

列出不匹配的文件名,

grep -w pattern files :

只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :

匹配的上下文分别显示[number]行,

grep pattern1 | pattern2 files :

显示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:< 和 > 分别标注单词的开始与结尾。例如:

grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,

grep '<man' * 匹配‘manic’和‘man’,但不是‘Batman’,

grep '<man>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

'^':指匹配的字符串在行首,

'$':指匹配的字符串在行尾,

如果您不习惯命令行参数,可以试试图形界面的‘grep’,如 reXgrep 。这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 :-) 。如果您只是需要更清楚的输出,不妨试试 fungrep 。

grep 搜索字符串

命令格式:

grep string filename

寻找字串的方法很多,比如说我想找所有以M开头的行.此时必须引进pattern的观念.以下是一些简单的□例,以及说明:

^M 以M开头的行,^表示开始的意思

M$ 以M结尾的行,$表示结束的意思

^[0-9] 以数字开始的行,[]内可列举字母

^[124ab] 以1,2,4,a,或b开头的行

^b.503 句点表示任一字母

* 星号表示0个以上的字母(可以没有)

+ 加号表示1个以上的字母

. 斜线可以去掉特殊意义

<eg> cat passwd | grep ^b 列出大学部有申请帐号者名单

cat passwd | grep ^s 列出交换学生申请帐号者名单

cat passwd | grep '^b.503' 列出电机系各年级...

grep '^.' myfile.txt 列出所有以句点开头的行

二、与正则表达式结合

grep的规则表达式:

反义字符:如""""表示匹配""

[ - ] 匹配一个范围,[0-9a-zA-Z]匹配所有数字和字母

* 所有字符,长度可为0

+ 前面的字符出现了一次或者多次

^ #匹配行的开始 如:'^grep'匹配所有以grep开头的行。

$ #匹配行的结束 如:'grep

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。