Linux中匹配字符命令 linux匹配指定列

Linux字符串搜索命令

1、grep [选项] 字符串 文件名(在文件中匹配符合条件的字符串)

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的美兰网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

选项:

-i 忽略大小写

-v 排除指定的字符串

例子:

grep "test" a.txt(在a.txt中搜索匹配test的字符串)

注意:

find命令:在系统中搜符合条件文件名,使用通用符,通用符是完全匹配

grep命令:在文件中搜索符合条件字符串,使用正则匹配,正则包含匹配

linux正则表达式匹配单个任意字符用

字符匹配:

. :匹配任意单个字符

[] :匹配指定范围内的任意单个字符;

[^]:匹配制定范围外任意单个字符 [:digit:] lower upper alpha alnum space

匹配次数:用在要指定其出现的次数的字符后面,用于限制其前面字符出现的次数

*:匹配其在前面的字符任意次:0,1.多次

.*:匹配任意长度的任意字符

\?:匹配其前面字符0次或一次,及前面字符是可有可无

\+:匹配其前面字符一次或是多次,至少一次,

\{m\}匹配前面字符m次

\{m.n\}匹配其前面的字符至少m次,之多n次

\{0,n\}:之多n次

\{m,\} :至少m次

位置锚定:

^:行首锚定:用于模式的最左侧

$:行尾锚定:用于模式的最右侧

^PATTERN:用于PATTERN

^$:空白行

^[[:space:]]:空行或包含空白字符的行

单词:非特殊字符组成的连续字符(字符串)都成为单词

\

\或是\b:词尾锚定,用于单词模式的右侧

\:匹配完整单词

以上所述是小编给大家介绍的Linux中基本正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

Linux下Grep命令的详细使用方法?

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。

假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:

$ grep magic /usr/src/linux/Documentation/*

sysrq.txt:* How do I enable the magic SysRQ key?

sysrq.txt:* How do I use the magic SysRQ key?

其中文件‘sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。

默认情况下,‘grep’只搜索当前目录。如果此目录下有许多子目录,‘grep’会以如下形式列出:

grep: sound: Is a directory

这可能会使‘grep’的输出难于阅读。这里有两种解决的办法:

明确要求搜索子目录:grep -r

或忽略子目录:grep -d skip

当然,如果预料到有许多输出,您可以通过 管道 将其转到‘less’上阅读:

$ grep magic /usr/src/linux/Documentation/* | less

这样,您就可以更方便地阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。

下面是一些有意思的命令行参数:

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 '\grep '\' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

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

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

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


分享名称:Linux中匹配字符命令 linux匹配指定列
转载源于:http://azwzsj.com/article/ddgejde.html