linux 搜索内容 Linux怎么学

大家好,今天来为大家解答linux 搜索内容这个问题的一些问题点,包括Linux怎么学也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

Linux-grep,查找文件里面内容

搜索、查找文件内容最常用命令是grep。egrep,vi命令也可实现文件内容搜索。

1:搜索特定文件包含特定字符串

使用命令:grep"search content" filename1

示例:grep ORA utlspadv.sql查找utlspadv.sql文件中包含ORA的字符内容

$ grep"ORA" utlspadv.sql

若需过滤特定内容,可修改搜索内容。

2:搜索多个文件中包含特定字符串

使用命令:grep"search content" filename1 filename2.... filenamen

示例:grep"search content"*.sql查看当前目录下所有.sql文件中包含特定内容

$ grep"v\$temp_space_header"*.sql查找包含v\$temp_space_header的.sql文件

3:显示搜索文本在文件中的行数

使用命令:grep-n"search content" filename

示例:$ grep-n"v\$temp_space_header"*.sql查看包含v\$temp_space_header的行数

4:忽略大小写搜索

使用命令:grep-i"search content" filename

示例:[oracle@DB-Server admin]$ grep-i"V\$TEMP_SPACE_HEADER"*.sql查找大写搜索内容的文件

5:检查安装的MySQL组件

使用命令:rpm-qa| grep-i mysql查看已安装的MySQL组件

6:查找不匹配指定字符串的行

使用命令:grep–v"被查找的字符串"文件名

示例:查找不包含命令grep ora_mmon的进程

[oracle@DB-Server admin]$ ps-ef| grep ora_mmon| grep-v grep

7:搜索匹配的行数

使用命令:grep-c"被查找的字符串"文件名

示例:查找特定字符串在文件中的行数

8:递归搜索目录及其子目录下所有文件

使用命令:grep-r"被查找的字符串"/目录

示例:搜索特定字符串在/u01目录下的所有文件

9:获取包含搜索内容的文件

使用命令:grep-H-r"被查找的字符串"/目录| cut-d:-f1

示例:获取/u01目录下包含特定字符串的文件

10:获取完整匹配搜索字符的内容

使用命令:grep-w"被查找的字符串"文件名

对比两种搜索方式的差异。

11:结合find命令搜索

使用命令:find.-name'*.sql'-exec grep-i'v\$temp_space_header'{}\;-print

示例:在当前目录下查找所有.sql文件中包含v\$temp_space_header的内容

12:vi命令也可用于文件内容搜索,但功能不如grep强大。

linux下查找文件内容

一.find命令

基本格式:find path expression

1.按照文件名查找

(1)find/-name httpd.conf#在根目录下查找文件httpd.conf,表示在整个硬盘查找

(2)find/etc-name httpd.conf#在/etc目录下文件httpd.conf

(3)find/etc-name'*srm*'#使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件

(4)find.-name'srm*'#表示当前目录下查找文件名开头是字符串‘srm’的文件

2.按照文件特征查找

(1)find/-amin-10#查找在系统中最后10分钟访问的文件(access time)

(2)find/-atime-2#查找在系统中最后48小时访问的文件

(3)find/-empty#查找在系统中为空的文件或者文件夹

(4)find/-group cat#查找在系统中属于 group为cat的文件

(5)find/-mmin-5#查找在系统中最后5分钟里修改过的文件(modify time)

(6)find/-mtime-1#查找在系统中最后24小时里修改过的文件

(7)find/-user fred#查找在系统中属于fred这个用户的文件

(8)find/-size+10000c#查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)

(9)find/-size-1000k#查找出小于1000KB的文件

3.使用混合查找方式查找文件

参数有:!,-and(-a),-or(-o)。

(1)find/tmp-size+10000c-and-mtime+2#在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件

(2)find/-user fred-or-user george#在/目录下查找用户是fred或者george的文件文件

(3)find/tmp!-user panda#在/tmp目录中查找所有不属于panda用户的文件

二、grep命令

基本格式:find expression

1.主要参数

[options]主要参数:

-c:只输出匹配行的计数。

-i:不区分大小写

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

\:忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$:匹配正则表达式的结束行。

\<:从匹配正则表达式的行开始。

\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求。

[- ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。

.:所有的单个字符。

*:有字符,长度可以为0。

2.实例

(1)grep'test' d*#显示所有以d开头的文件中包含 test的行

(2)grep‘test’ aa bb cc#显示在aa,bb,cc文件中包含test的行

(3)grep‘[a-z]\{5\}’ aa#显示所有包含每行字符串至少有5个连续小写字符的字符串的行

(4)grep magic/usr/src#显示/usr/src目录下的文件(不含子目录)包含magic的行

(5)grep-r magic/usr/src#显示/usr/src目录下的文件(包含子目录)包含magic的行

(6)grep-w pattern files:只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

linux使用shell搜索查找文本的几种方法分享

linux下,日常开发的时候免不了查看开发的应用的日志,但只要是系统上线,就不像原来那样在本地调试的那么简单了日志的大小很大,服务器一般也是Linux、HP、AIX等,每次都下载回来就麻烦的要命,在开源中国看到下面内容,很实用。

1.使用find和xargs命令

复制代码代码如下:

find dir| xargs grep str# dir是指某个目录

find file| xargs grep str# file是指某个文件2.

第2种方法是直接使用grep命令

复制代码代码如下:

grep str dir/*# dir是指某个目录,但不递归搜索其子目录

grep-r str dir/*#使用-r选项,递归搜索其子目录

grep str file#file是指某个文件

3.第3种方法是综合以上两种

复制代码代码如下:

#!/bin/bash

#find_str.sh

if [$#-lt"2" ]; then

echo"Usage: `basename$0` path name [option]"

exit 1

fi

#!-r表示递归处理子目录,-i表示忽略大小写

path=$1

name=$2

shift

shift

for option in"$@"

do

case$option in

-r) dir_op="-r"

;;

-i) lu_op="-i"

;;

*) if [-n"$option" ]; then

echo"invalid option"

exit 1

fi

;;

esac

done

grep_str_of_file()

{

file=$1

str=$2

out=$(grep-n$lu_op"$str""$file")

if [-n"$out"-a"$file"!="$0" ]; then

echo"$file:$out"

fi

}

find_str()

{

if [-d"$1" ]; then

for file in$1/*

do

if ["$dir_op"="-r"-a-d"$file" ]; then

find_str$file$2

elif [-f"$file" ]; then

grep_str_of_file$file$2

fi

done

elif [-f"$1" ]; then

grep_str_of_file$1$2

fi

}

使用方法

复制代码代码如下:

$ find_str$path$name

阅读剩余
THE END