精华内容
下载资源
问答
  • Linux里面的搜索查找类指令

    万次阅读 多人点赞 2019-01-15 19:37:03
    Linux里面的搜索查找类指令

    find指令 (查找满足条件的文件)

    find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

    基本语法      

    find  [搜索范围]  [选项]   

    选项说明 (常用的)

    -name<查询方式>       按照指定的文件名查找模式查找文件,可以使用通配符?
    -user<用户名>         查找属于指定用户名所有文件
    -size<文件大小>       按照指定的文件大小查找文件

    应用实例      

    案例1: 按文件名:根据名称查找/home 目录下的hello.txt文件        find  /home   -name  hello.txt      

    案例2:按拥有者:查找/opt目录下,用户名称为 nobody的文件       find  /opt    -user  nobody      

     

    案例3:查找整个linux系统下大于10M的文件(+n 大于  -n小于   n等于)       find   /  -size   +10M

     

    如果我要查找小于10M的我这里写成find   /  -size   +10M,等于10M的写成find   /  -size   10M

    单位M要大写,k要小写

    案例4:查找整个linux系统下所有的的 .txt 文件    find  / -name  *.txt      

     


     locate指令 (快速定位文件路径)

    locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

    基本语法      

    locate 搜索文件

    特别说明

    由于locate指令基于数据库进行查询,所以第一次运行前必须使用updatedb指令创建locate数据库。    

    应用实例      

    案例1: 请使用locate 指令快速定位 hello.txt 文件所在目录      

    updatedb // 创建locate的数据库      

    locate  hello.txt

     

     


     grep指令和管道符号 |  (过滤查找、管道)

    grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 

    grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。 (把两个指令通过一个管道指令连接起来,“|” 起了一个连接的作用)

    基本语法      

    grep [选项] 查找内容 源文件

    常用选项

    -n          显示匹配行及行号
    -i          忽略字母大小写

    应用实例      

    案例1: 请在 /etc/profile 文件中,查找  "if"  所在行,并且显示行号      

    grep –n   if  /etc/profile  [在/etc/profile 中查找 if ,并显示行,区别大小写]      

    grep –ni   if  /etc/profile  [在/etc/profile 中查找 if ,并显示行,不区别大小写]    

     案例2: 请在 hello.txt文件中,查找“yes”所在行,并且显示行号

     

    展开全文
  • 在Linux系统中使用xShell如何搜索查找文件里面的内容是查找问题、系统维护当中最常见的需求。搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容 假如是非压缩包文件,...

    先说一个 FTP客户端-IIS7服务器管理工具
    作为FTP客户端,它支持批量管理ftp站点。定时上传和定时下载,定时备份,且操作简洁。同时iis7服务器管理工具还是vnc客户端。并且支持批量管理管理windows及linux服务器、vps。让服务器真正实现了一站式管理,真的是非常方便。需要的可以看一下。
    下载链接(点击直达)
    在这里插入图片描述

    正文:在Linux系统中使用xShell如何搜索查找文件里面的内容是查找问题、系统维护当中最常见的需求。搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容
    假如是非压缩包文件,可以用grep命令去搜索,例如: grep –i “被查找的字符串” 文件名
    假如是.gz压缩包类型的话,可以用zgrep命令去搜索,例如: zgrep –i “被查找的字符串” 文件名

    1:搜索某个文件里面是否包含字符串,使用grep “search content” filename1, 例如在invest.appLog文件中搜索“9648345”

    grep 9648345 invest.appLog grep "9648345" invest.appLog
    

    在这里插入图片描述
    被查找的内容会被标红(如下图)
    在这里插入图片描述

    补充:

    (1)查找当前目录(包含子目录)的字符串:grep -r 字符串

    grep -r "48345" *
    

    会查询出当前目录(包含子目录)所有包含要查询字段的数据
    在这里插入图片描述
    (2)同时满足多个字符串查找:

    grep 字符串1 文件名 | grep 字符串2 | grep 字符串3 | grep …

    (3)满足多个关键字之一

    grep -E “字符串1|字符串2|字符串3|” 文件名 或者

    egrep “字符串1|字符串2|字符串3|” 文件名
    2: 如果你想搜索多个文件是否包含某个字符串,可以使用下面方式

    grep "search content" filename1 filename2.... filenamen
    grep "search content" *.sql
    

    3:如果需要显示搜索文本在文件中的行数,可以使用参数-n

    grep -n "9648345" invest.appLog
    

    在这里插入图片描述
    查到的结果会在每行前面显示行数
    在这里插入图片描述
    4: 如果搜索时需要忽略大小写问题,可以使用参数-i
    例如日志中有“48345”,显然使用"48345"是搜索不到的,但加上-i后便可以搜索出来

    grep -i "48345</exser>" invest.appLog
    

    在这里插入图片描述
    6:搜索、查找匹配的行数(会返回包含查找内容的总行数)
    $ grep -c “被查找的字符串” 文件名

    grep -c "</exSer>" invest.appLog
    
    展开全文
  • Jsp中实现搜索查找功能

    万次阅读 2013-03-07 13:48:17
    在做后台管理的时候,当要管理的数据很多的时候,不可避免的就需要搜索查找功能。这样更简便,快捷,省时省力。因此,搜索也成了必不可少的部分!在搜索的时候有两种方式:1.在数据库中实现,借用数据库的功能,可以...

    在做后台管理的时候,当要管理的数据很多的时候,不可避免的就需要搜索查找功能。这样更简便,快捷,省时省力。因此,搜索也成了必不可少的部分!在搜索的时候有两种方式:1.在数据库中实现,借用数据库的功能,可以轻松的实现搜索功能,然后后台要做的就是规格整理显示出来,方便客户的操作和查看!2,是将所有的内容显示出来,利用业内搜索,挨个查找,知道找出令客户满意的那些条目为止!从网上找到了业内搜索的代码在javaScript中实现:代码如下:

    在jsp业内代码:<input type="text" id="searchstr" name="searchstr" class="textbox" size="20"> 
                                 <input type="button" value="页内查找" οnclick="javascript:findIt();" class="sbttn">

    javascript脚本中代码:

     var DOM = (document.getElementById) ? 1 : 0; 
      var NS4 = (document.layers) ? 1 : 0; 
      var IE4 = 0; 
      if (document.all) 
      { 
      IE4 = 1; 
      DOM = 0; 
      } 
      
      var win = window;
      var n = 0; 
      
      function findIt() { 
      if (document.getElementById("searchstr").value != "") 
      findInPage(document.getElementById("searchstr").value); 
      } 
      
      
      function findInPage(str) { 
      var txt, i, found; 
      
      if (str == "") 
      return false; 
      
      if (DOM) 
      { 
      win.find(str, false, true); 
      return true; 
      } 
      
      if (NS4) { 
      if (!win.find(str)) 
      while(win.find(str, false, true)) 
      n++; 
      else 
      n++; 
      
      if (n == 0) 
      alert("未找到指定内容."); 
      } 
      
      if (IE4) { 
      txt = win.document.body.createTextRange(); 
      
      for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) { 
      txt.moveStart("character", 1); 
      txt.moveEnd("textedit"); 
      } 
      
      if (found) { 
      txt.moveStart("character", -1); 
      txt.findText(str); 
      txt.select(); 
      txt.scrollIntoView(); 
      n++; 
      } 
      else { 
      if (n > 0) { 
      n = 0; 
      findInPage(str); 
      } 
      else 
      alert("未找到指定内容."); 
      } 
      } 
      
      return false; 
      }

    个人试过,感觉还可以,唯一不满意的就是查找显示的顺序是从下向上的,而且要是查找框能悬浮于页面上独立出来那就更好了(像Eclipse中查找一样就好了!)有空要试试看,做成那样的!

    相比较而言,个人还是更倾向于第一种,虽然会给数据库带来一定压力!但是第一种更直观,形象,便于操作!而且从用户角度看,也是更倾向于第一种!

     

    展开全文
  • linux文件搜索查找命令

    万次阅读 2007-09-14 20:41:00
    linux文件搜索查找命令1、grep功能描述grep 命令在一个或多个文件中查找与指定模式匹配的字符串。如果模式里包含有空格,必须用引号括起来。grep的模式只能是一个被引号括起来的字符串或者是一个单词,后面紧跟着的...

    linux文件搜索查找命令

    1、grep

    功能描述
    grep 命令在一个或多个文件中查找与指定模式匹配的字符串。如果模式里包含有空格,必须用引号括起来。grep的模式只能是一个被引号括起来的字符串或者是一个单词,后面紧跟着的参数都被当作文件名。grep命令把结果输出到标准输出上,并不改变被搜索的源文件。

    命令格式
    grep pattern filename filename2 ...

    grep有几个选项比较常用的
    -i    查找时忽略大小写进行比较
    -n    显示找到的行在文件中的行号
    -v    显示不匹配的行

    例1:在/etc/passwd文件中查找包含"bugboy"的行
    [bugboy@bugboy ~]$ grep bugboy /etc/passwd
    bugboy:x:500:500:YanDingcheng:/home/bugboy:/bin/bash

    grep在/etc/passwd文件中查找含有bugboy的每一行,如果找到就把该行输出到标准输出上,grep的退出状态
    为0;如果没找到,grep将不会输出任何信息,退出状态为1;如果指定的文件不存在,grep的退出状态为2。

    grep模式支持正则表达式,下面是一些常用的正则表达式匹配元字符。

    ^      行起始锚定符,例如'^love',匹配所有以love开始的行。
    $     行结束锚定符,例如'love$',匹配所有以love结束的行。
    .      匹配任意一个字符, 例如'l..e',匹配所有以"l"开头,紧跟两个字符,然后以"e"结尾的字符串。
    *     匹配0个或多个任意字符,例如' *bug',匹配以任意多个空格开始,后跟"bug"的字符串。
    []     匹配字符集中的一个字符,例如'[Bb]ook',匹配Book或book。
    [^]   匹配不在字符集中的一个字符,例如'[^A-Z]low',匹配所有不以大写字母开头,后跟"low"的字符串。
    /<   单词超始锚定符,例如'/<go',匹配所有以"go"开头的单词。
    />   单词结束锚定符,例如'or/>',匹配所有以"or"结束的单词。
    x/{m/}    匹配m个x,例如'o/{5}',匹配5个o,即"ooooo"。
    x/{m,/}   匹配至少m个x,例如'o/{5,/},匹配至少5个o,即"ooooo","oooooo"等。
    x/{m,n/} 匹配m到n个x,例如'o/{2,5/}',匹配2到5个为,即"oo","ooo","oooo","ooooo"。

    例2:在/etc/passwd中查找用户名以"b"开头的用户
    [bugboy@bugboy test]$ grep ^b /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    bugboy:x:500:500:YanDingcheng:/home/bugboy:/bin/bash

    例3:在/etc/passwd中查找SHELL为bash的用户
    [bugboy@bugboy test]$ grep bash$ /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    ftp:x:14:50:FTP User:/var/ftp:/bin/bash
    netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash
    pvm:x:24:24::/usr/share/pvm3:/bin/bash
    mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
    postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
    bugboy:x:500:500:YanDingcheng:/home/bugboy:/bin/bash

    例3:在/etc/passwd中查找含有"00"的行
    [bugboy@bugboy test]$ grep '0/{2/}' /etc/passwd
    games:x:12:100:games:/usr/games:/sbin/nologin
    bugboy:x:500:500:YanDingcheng:/home/bugboy:/bin/bash

    例4:查找sscanf.c文件中的非空行
    [bugboy@bugboy test]$ cat sscanf.c
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
        const char *str = "I am bugboy";
        char mystr[256];

        sscanf(str, "%s", mystr);
        printf("1: %s/n", mystr);

        char key[64], value[64];
        sscanf(str, "%s %s", key, value);

        printf("key: %s, value: %s/n", key, value);

        return 0;
    }
    [bugboy@bugboy test]$ grep -v '^ *$' sscanf.c
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
        const char *str = "I am bugboy";
        char mystr[256];
        sscanf(str, "%s", mystr);
        printf("1: %s/n", mystr);
        char key[64], value[64];
        sscanf(str, "%s %s", key, value);
        printf("key: %s, value: %s/n", key, value);
        return 0;
    }

    例5:查找sscanf.c文件中含有"const char"的行,注意,如果要查找的字符串不只一个单词,要用引号括起来。
    [bugboy@bugboy test]$ grep "const char" sscanf.c
        const char *str = "I am bugboy";

       
    2、find

    功能描述
    find命令在文件系统中查找文件

    命令格式
    find  [path ...] [option] [-exec | -ok | -print]

    find 命令的参数
    path    find命令所查找的目录路径。
    -exec   find命令对查找到的每一个匹配文件执行一个shell命令,命令格式为 "-exec command {} /;",
            注意“{}”和“/;”之间有一个空格,最后的“;“也不要忘了。
    -ok     和-exec的作用相同,只是在执行命令之前请求用户确认,更安全的执行命令。
    -print  将查找到的文件输出到标准输出。

    例1:查到/tmp目录下所有扩展名为".tmp"的文件并删除。
    [bugboy@bugboy test]$ find /tmp -name "*.tmp" -exec rm {} /;
    这里用到了一个-name选项,是指按文件名查找,后面我将会对它进行说明。

    命令选项
    -name      按照文件名查找文件。
    -perm       按照文件权限来查找文件。
    -user        按照文件属主来查找文件。
    -group     按照文件所属的组来查找文件。
    -mtime -n +n  按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
                  find命令还有-atime和-ctime选项,它们和-mtime选项类似。
    -nogroup   查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser    查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! -newer file2  查找更改时间比文件file1新但比文件file2旧的文件。
    -type      查找某一类型的文件,诸如:
        b - 块设备文件。
        d - 目录。
        c - 字符设备文件。
        p - 管道文件。
        l - 符号链接文件。
        f - 普通文件。
    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
    -depth     在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -fstype    查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,
                    该配置文件中包含了本系统中有关文件系统的信息。
    -mount     在查找文件时不跨越文件系统mount点。
    -follow     如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
    -cpio        对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

    另外,下面三个的区别:
      -amin  n   查找系统中最后N分钟访问的文件
     -atime n  查找系统中最后n*24小时访问的文件
     -cmin  n  查找系统中最后N分钟被改变文件状态的文件
     -ctime n  查找系统中最后n*24小时被改变文件状态的文件
      -mmin  n  查找系统中最后N分钟被改变文件数据的文件
     -mtime n  查找系统中最后n*24小时被改变文件数据的文件

    例2:查找当前目录下的块设备文件
    [bugboy@bugboy dev]$ find . -type b
    ./fd0H720
    ./fd0H360
    ./fd0H1440
    ./fd0D720

    这里省略掉了部份结果。

    例3:查找当前目录下5天以内修改过的文件
    [bugboy@bugboy test]$ find . -mtime -5
    .
    ./toto.s
    ./toto.c
    ./tookit
    ./over
    ./over.s
    ./over.c
    ./tookit.c

    例3:查找当前目录下比stat.c文件新,比over.c文件旧的文件
    [bugboy@bugboy test]$ find . -newer stat.c ! -newer over.c
    ./toto.s
    ./crypt
    ./test
    ./toto.c
    ./strtok
    ./foo.h
    ./fstatvfs
    ./strsep.c

    例4:查找当前目录下,具有644(用户可读、写,组可读,其它用户可读)权限的文件
    [bugboy@bugboy test]$ find . -perm 644
    ./auto/gnip-1.0.tar.gz
    ./auto/gnip.o
    ./auto/.deps/gnip.Po

    find命令与xargs命令相结合使用

    在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

    find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

    在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

    而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

    例5:查找当前目录下所有的.c文件,并在文件中搜索stat字符串,输出包含stat的行和行号
    [bugboy@bugboy test]$ find . -name "*.c" | xargs grep -n stat
    ./stat.c:3:#include <sys/stat.h>
    ./stat.c:5:#include <sys/statvfs.h>
    ./stat.c:9:    struct statvfs fsd;
    ./stat.c:11:    statvfs("/", &fsd);
    ./fstatvfs.c:2:#include <sys/statvfs.h>
    ./fstatvfs.c:4:#include <sys/stat.h>
    ./fstatvfs.c:10:    struct statvfs vfs;
    ./fstatvfs.c:14:    if (fstatvfs(fd, &vfs) < 0) {
    ./fstatvfs.c:15:        fprintf(stderr, "fstatvfs error()./n");
    ./statl.c:2:#include <sys/stat.h>
    ./statl.c:8:    struct stat statbuf;
    ./statl.c:15:    stat(argv[1], &statbuf);
    ./statl.c:16:    if (S_ISDIR(statbuf.st_mode)) {
    ./statl.c:18:    } else if (S_ISBLK(statbuf.st_mode)) {
    ./test.c:7:static int get_netmask_len(const char *netmask)


    3、which, whereis

    which命令在PATH环境变量中查找可执行文件,并打印出文件的全路径。例
    [bugboy@bugboy test]$ which test
    /usr/bin/test
    [bugboy@bugboy test]$ which ls man find
    alias ls='ls --color=tty'
            /bin/ls
    /usr/bin/man
    /usr/bin/find

    whereis命令查找源文件、可执行文件、手册文件的位置。例
    [bugboy@bugboy test]$ whereis test
    test: /usr/bin/test /usr/share/man/man1p/test.1p.gz /usr/share/man/man1/test.1.gz
    [bugboy@bugboy test]$ whereis ls find
    ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
    find: /usr/bin/find /usr/share/man/man1p/find.1p.gz /usr/share/man/man1/find.1.gz

    which和whereis这两个命令都可以接受多个参数作为查找命令。
     

    展开全文
  • 就比如说大鱼号作者,好多网友自己申请了个大鱼号,又或者需要查找一个大鱼号,去搜索引擎查找,给人的结果往往不尽人意,那么我们怎么才能搜索查找到大鱼号作者,为啥连大鱼号作者排行榜上的作者都找不到?...
  • Linux如何搜索查找文件里面内容

    万次阅读 2019-01-11 16:51:55
    搜索查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容   1:搜索某个文件里面是否包含字符串,使用grep "search content" filename1, 例如   $ grep ORA ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 800,388
精华内容 320,155
关键字:

搜索查找