美文网首页攻克Linux
Linux命令_文本搜索命令

Linux命令_文本搜索命令

作者: 皮皮大 | 来源:发表于2019-05-26 18:21 被阅读4次

    Linux系统中服务、文件多,需要使用多种搜索命令进行查找我们需要的文本信息,系统中常用的文本搜索命令有grep、find、seek等,熟练掌握其用法可以显著提高搜索效率。


    grep

    常用于文本中搜索关键词,并显示匹配结果。最常用的参数是:

    n:显示行号和v:反向匹配

    • b:将可执行文件当做文本文件来搜索
    • c:仅显示搜索到的行数
    • i:忽略大小写
    • n:显示行号
    • v:反向搜索,列出没有关键词的行
    root@peter:~# grep -n ubuntu /etc/apt/sources.list     # 查找含有ubuntu的文本信息,并且显示行号
    4:deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    5:deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    ......
    
    root@peter:~# grep -nv ubuntu /etc/apt/sources.list  # 查找不含有ubuntu的文本,空行也显示
    1:# deb cdrom:[Ubuntu 18.04.2 LTS _Bionic Beaver_ - Release amd64 (20190210)]/ bionic main restricted
    2:
    3:# add aliyuan    codename:bionic
    14:
    15:
    17:# newer versions of the distribution.
    
    

    find

    find 命令用于按照指定的条件来查找文件。

    格式:find 路径 寻找条件 操作

    参数 作用
    -name 名称匹配
    -perm 权限匹配
    -user 所有者匹配
    -group 所有组匹配
    -mtime 修改内容时间(-n指n天内;+n指n天以前)
    -atime 访问时间
    -ctime 修改权限时间
    -newer f1 !f2 匹配比f1新但比f2旧的文件
    --type b/c/d/p/l/f 匹配文件类型
    -size 匹配文件大小(+50KB:超过;-50:小于)
    -exec ..... {}; 后面接进一步处理搜索结果的命令
    root@peter:~# find /etc -name "host*" -print   # 查找配置etc中以host开头的文件列表
    /etc/host.conf
    /etc/hosts
    /etc/hosts.deny
    /etc/avahi/hosts
    /etc/hostname
    /etc/hosts.allow
    
    ubuntu@peter:~/spider$ find . -name "*s"     # 查找当前目录下以s结尾的任意文件
    ./BeautiulSoup/.git/hooks
    ./BeautiulSoup/.git/objects
    ./BeautiulSoup/.git/logs
    
    ubuntu@peter:~/spider$ find . -type f        # 列出当前目录的一般性文件
    ubuntu@peter:~/spider$ find . -ctime -20     # 列出当前目录下进20天内更新过的文件
    ubuntu@peter:~/spider$ find . -type f -perm 644 -exec ls -l {} \;       # 列出当前目录中文件属主具有读写权限,并且文件所属组的用户和其他用户具有读权限的文件
    
    Linux命令_文本搜索命令

    相关文章

      网友评论

        本文标题:Linux命令_文本搜索命令

        本文链接:https://www.haomeiwen.com/subject/pzhftctx.html