Linux:find grep sed查找命令

本文介绍Linux中find命令的使用方法,包括路径搜索、权限查找、删除重复文件等功能,以及grep命令的使用,包括查找文本、过滤输出等特性。同时介绍了sed命令的基本操作,如文本替换、插入、删除等,提供了实用的文件处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

find:

  命令主要为对文件的查找以及部分操作,下面介绍一下常用参数的使用

  find [路径地址] -name '[文件名(支持文件通配符和正则表达式)]'

    当前目录下查找以test开头的文件;

       # find . -name 'test*'
       ./test1
       ./test

    查找以大写开头数字加后缀结尾的文件可使用正则表达式;

       # find . -name '[A-Z]*[1-9].txt'
       ./Atest2.txt

  find -perm  按照 文件权限查找文件,建议使用8进制表示法 
       # find . -perm 644 | xargs ls -l
       -rw-r--r--. 1 root root    0 Apr 20 00:14 ./Atest2.txt
       -rw-r--r--. 1 root root 1485 Apr 19 19:27 ./test
       -rw-r--r--. 1 root root    0 Apr 19 23:44 ./test2/test
       -rw-r--r--. 1 root root 1485 Apr 19 23:43 ./test2/test2

     ps:xargs 将上一命令的结果作为下一命令的参数并返回结果 

  find -exec  可以对所搜索的文件操作  比如大量删除同名文件

  

       # find . -name '[A-Z]*' -print -exec rm -f {} \;
       ./Atest2.txt

                  ps:‘{}’ 指前面find所搜索到的文件‘\’转义分号。

  find -path -prune  常用来搜索时忽略某个已知目录

       # find . -name 'test' -path "test4" -prune -o -print
       .
       ./test2
       ./test
     

-path "test" -prune -o -print 是 -path "test" -a -prune -o -print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 

-path "test" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "test" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

grep:

全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户;grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来,用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用。

   命令格式:

                  grep[参数] '查找内容' [文件名]

   参数:

    -r   查找当前目录及子目录

    -n   显示行数

    -c   匹配次数

    -i   不区分大小写

    -v   不显示包含查找内容的行

    -A n  显示匹配行上n行(共n+1行)

    -B n  显示匹配行下n行(共n+1行)

    -C n  显示匹配行上及下n行(共2n+1行)

   

        # cat test | grep -n -C 3 '^root' --color
        1:root:x:0:0:root:/root:/bin/bash
        2-bin:x:1:1:bin:/bin:/sbin/nologin
        3-daemon:x:2:2:daemon:/sbin:/sbin/nologin
        4-adm:x:3:4:adm:/var/adm:/sbin/nologin


sed:

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。

   set [nefri] 操作n1,n2[] 文件

   参数 -n    默认输出全部资料 加上-n参数后仅输出被处理行      

      -e   直接在指令行模式进行编辑

      -f   将命令写入文件  -f [文件名]即可执行文件内指令

      -r   sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)

      -i   直接修改文件内容不输出

   操作 a   新增,a后可跟字符串,这些字符会在当前行下一行出现 

      c   取代,c后字符串可以替换n1行到n2行之间所有内容

      d   删除,删除n1-n2行内容

      i   插入,c后字符串可插入到当前行上一行

       p    列印,将某个数据打印,常与参数-n同用

      s   取代,可直接进行取代工作

   删除某行

# sed '2,5d' test  #删除2-5
# sed '2,$d' test  #删除2-最后一行
# sed '/root/d' test  #查找包含root字符的数据行并删除

   显示某行
#sed -n '1,2p' test   #显示1-2行
#sed -n '1p' test      #显示第一行</span></span>

   查找字符
# sed -n '/mysql/p' test    #查找包含mysql的数据行
  
   插入
# sed -n '2a qwe' test    #第二行下插入
# sed -n '2i qwe' test    #第二行上插入

   取代

 

# sed -n '/root/{s/root/boom/;p}' test   #把root字符换成boom并输出


    

   

   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值