精华内容
下载资源
问答
  • Linux搜索文件名和搜索文本内容命令

    万次阅读 2019-06-19 17:23:49
    1.搜索文件名:find命令 a.桌面系统如何搜索某个文件名? Windows或Linux系统自带搜索文件名可视化功能 b.Linux终端如何搜索某个文件名? 举例说明:在整个系统中查找所有bin文件命令: sudo find / -name bin ...

    1.搜索文件名:find命令

    a.桌面系统如何搜索某个文件名?

    Windows或Linux系统自带搜索文件名可视化功能

     

    b.Linux终端如何搜索某个文件名?

    举例说明:在整个系统中查找所有bin文件命令: sudo find / -name bin

    c.IDE如Pycharm将整个项目打开,连按2次shift键可打开文件搜索功能

    2.搜索文本内容:grep命令

    a.IDE如Pycharm将整个项目打开,Ctrl+H可打开整个项目文本内容搜索功能

    Edit-->Find-->Find in Path

    b.Linux终端如何搜索文本内容?

    举例说明:

    在整个系统中查找所有文件内容含 'hello world' 字符串的文件:sudo grep -rin 'hello world' /

    在当前目录下查找所有文件内容含 'hello world' 字符串的文件:sudo grep -rin 'hello world' *

    解释:

    r:递归查找

    i:忽略大小写

    n:显示查找到的行号

    'hello world':需要查找的文本字符串

    / 从根目录(整个系统查找),也可以写文件名,多个用空格分隔,或*代表当前目录所有文件中查找

    展开全文
  • 使用 sed,您可以搜索、查找和替换、插入和删除单词和行。 它支持基本的和扩展的正则表达式,允许您匹配复杂的模式。接下来, 我将使用 sed 查找和替换字符串。 我还将向您展示如何执行递归搜索和替换。查找和替换...

    在处理文本文件时,通常需要在一个或多个文件中查找和替换文本字符串。

    sed 是一个流编辑器。 它可以对文件和输入流(如管道)执行基本的文本操作。 使用 sed,您可以搜索、查找和替换、插入和删除单词和行。 它支持基本的和扩展的正则表达式,允许您匹配复杂的模式。

    接下来, 我将使用 sed 查找和替换字符串。 我还将向您展示如何执行递归搜索和替换。

    查找和替换字符串sed

    sed 有几个版本,它们之间有一些函数上的差异。 Macos 使用的是 BSD 版本,而且大多数 Linux 发行版默认都预装了 GNU。 下面默认的是 GNU 版本。

    使用 sed 搜索和替换文本的一般形式如下:

    sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
    • -i 将其输出写入标准输出sed
    • s 替代命令,可能是 sed 中使用最多的命令 -/分隔符字符。它可以是任何字符,但通常是斜杠(/) 字符
    • SEARCH_REGEX 要搜索的普通字符串或正则表达式
    • REPLACEMENT 替换字符串
    • g 全局替换标志。默认情况下一行一行地读取文件,只更改第一次出现的SEARCH_REGEX,当提供替换标志时,所有出现的情况都将被替换
    • INPUTFILE 要在其上运行命令的文件名 最好在参数周围加上引号,这样 shell 元字符就不会扩展。

    让我看一些示例,说明如何使用 sed 命令搜索文件中的文本,并使用其中一些最常用的选项和标志替换文件中的文本。

    为了便于演示,我将使用以下文件 file.txt:

    123 Foo foo foo 
    foo /bin/bash Ubuntu foobar 456

    如果省略了g 标志,那么每行中搜索字符串的第一个实例将被替换:

    sed -i '' 's/foo/linux/' file.txt
    
    123 Foo linux foo 
    
    linux /bin/bash Ubuntu foobar 456

    aa4a08e7318964a4e1a781d54d92d1ce.png

    使用全局替换标志 sed 替换所有出现的搜索模式:

    sed -i '' 's/foo/linux/g' file.txt
    123 Foo linux linux
    linux /bin/bash Ubuntu linuxbar 456

    e413b8d4c81a84d6fd6bcd4a7c35cddd.png

    正如您可能已经注意到的,在前面的示例中,foobar 字符串中的子字符串 foo 也被替换了。 如果这不是想要的行为,请在搜索字符串的两端使用单词边界表达式(b)。 这将确保部分词不匹配。

    sed -i  's/bfoob/linux/g' file.txt
    123 Foo linux linux
    linux /bin/bash Ubuntu foobar 456

    effb9ae05aab934e6ffdb02bdb6e072a.png

    若要使模式匹配不区分大小写,请使用 I 标志。 在下面的例子中,我同时使用了 g 和 I 标志:

    sed -i  's/foo/linux/gI' file.txt
    123 linux linux linux 
    linux /bin/bash Ubuntu linuxbar 456

    如果要查找和替换包含分隔符(/)的字符串,则需要使用反斜杠()来转义斜杠。 例如,用/usr/bin/zsh 替换/bin/bash

    sed -i '' 's//bin/bash//usr/bin/zsh/g' file.txt

    更简单和更易读的选项是使用另一个分隔符字符。 大多数人使用竖线(|)或冒号(:) ,但你可以使用任何其他字符:

    sed -i 's|/bin/bash|/usr/bin/zsh|g' file.txt
    123 Foo foo foo 
    foo /usr/bin/zsh Ubuntu foobar 456

    您还可以使用正则表达式。 例如,搜索所有的3位数字,并将它们替换为您将使用的字符串数字:

    sed -i 's/b[0-9]{3}b/number/g' file.txt
    number Foo foo foo 
    foo /bin/bash demo foobar number

    sed 的另一个有用特性是,您可以使用与匹配模式相对应的 & 符号。 该字符可以被多次使用。

    例如,如果要在每个3位数字周围加上大括号{} ,请键入:

    sed -i 's/b[0-9]{3}b/{&}/g' file.txt
    {123} Foo foo foo 
    foo /bin/bash demo foobar {456}

    最后但并非最不重要的一点是,在使用 sed 编辑文件时进行备份总是一个好主意。 要做到这一点,只需要为 -i 选项提供一个扩展。 例如,要编辑 file.txt 并将原始文件保存为 file.txt.bak,可以使用:

    sed -i.bak 's/foo/linux/g' file.txt

    如果你想确保备份已经创建,用 ls 命令列出文件:

    ls
    file.txt file.txt.bak

    递归查找和替换

    有时,您希望递归地搜索目录中包含字符串的文件,并替换所有文件中的字符串。 这可以通过使用 find 或 grep 等命令递归地查找目录中的文件并将文件名管道化为 sed 来实现。

    下面的命令将递归搜索当前工作目录文件夹中的文件,并将文件名传递给 sed。

    find . -type f -exec sed -i 's/foo/bar/g' {} +

    为了避免文件名中包含空格的问题,可以使用-print0选项,它告诉 find 打印文件名,然后使用空字符,并使用 xargs-0将输出管道传送到 sed:

    find . -type f -print0 | xargs -0 sed -i 's/foo/bar/g'

    要排除目录,请使用非路径选项。 例如,如果您正在替换本地 git repo 中的字符串,以排除所有以点(.)开头的文件 、使用:

    find . -type f -not -path '*/.*' -print0 | xargs -0 sed -i 's/foo/bar/g'

    如果你只想搜索和替换具有特定扩展名的文件中的文本,你可以使用:

    find . -type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g'

    另一种选择是使用 grep 命令递归地查找包含搜索模式的所有文件,然后将文件名通过管道传递给 sed:

    grep -rlZ 'foo' . | xargs -0 sed -i.bak 's/foo/bar/g'

    小结

    虽然它看起来复杂和复杂,但实际上,用 sed 在文件中搜索和替换文本非常简单。

    本篇文章由一文多发平台ArtiPub自动发布
    展开全文
  • 关于LinuxLinux是一套免费使用和自由传播的类Unix操作...Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统Linux的基本操作方式是命令。如果没有命令,那我们相当于两眼一抹黑,无法使用L...
    8f48a1d8c6b2d4a84c71240309fbfefe.png

    关于Linux

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统

    Linux的基本操作方式是命令。如果没有命令,那我们相当于两眼一抹黑,无法使用Linux。它拥有的命令超过三千多条,其中常使用到的大概二百条。

    下面让我们来谈谈

    有关Linux的一些笔记吧!(以下列举的基础命令是重中之重,大家快收藏起来!)

    一.命令基本格式

    [root@loaclhost ~] #

    Root:当前登陆用户     loacalhost:主机名

    ~:当前所在目录           #超级用户        $普通用户

    查询目录内容:ls

    ls [选项] [文件或目录]

    选项:-a 显示all文件  -l 显示详细信息              -F 文件类型     -d 查看目录属性         

    -h 人性化        -i   显示inode

    ll 是ls -l 的简写

    二、文件处理命令

    目录处理命令

    建立目录:mkdir

    mkdir -p[目录名]      -p 递归创建

    as:mkdir file

         mkdir -p total/file   在total中再创建一个file

    touch total/file    创建文件

    切换所在目录:cd

    cd ~ 进入当前用户的家目录 cd 进入上一次目录

    cd.. 进入上一级目录

    查询所在目录位置:pwd

    删除文件或目录:rm

    rm -rf [文件或目录]      

    -r 删除目录      -f 强制

    rm -rf / 如果大家用了这个命令就赶紧跑路吧

    复制:cp

    cp [选项] [原文件或目录][目标目录]

    -r 复制目录      -p  连带文件属性copy       -d若源文件是链接文件,则copy链接属性          -a 相当于 -pdr

    剪切或改名:mv

    mv [源文件或目录] [目标目录]

    在同一目录下就是改名(不用打路径)

    链接命令:ln

    ln -s  [原文件(绝对路径)]  [目标文件] 创建软链接

    ln -s  jdk1.8.0_171  jdk

    三、文件搜索命令

    文件搜索命令:locate

    格式:locate 文件名(在后台数据库中按文件名搜索,速度快)

    updated 更新数据库(默认一天一次)

    文件搜索命令:find(在系统中查找符合条件的文件名)

    find [搜索范围] [搜索文件](精准匹配)

    find / -name  install.log

    #避免大范围的搜索,耗费系统资源;可加通配符进行模糊匹配

    find /root -name  “install.log*”

    通配符和正则表达式一样

    字符串搜索命令:grep(在文件当中搜索符合条件的字符串)

    grep [选项] 字符串 文件名 #在文件中匹配符合条件的字符串

    选项:-i忽略大小写 -v排除指定字符串

    as:grep -v “size” anaconda-ks.cfg

    命令搜索命令:whereis 与which

    whereis 命令名       #查找命令所在路径

    选项:-b:只查可执行文件   -m:只查help文件

    which 命令名         #查找命令所在路径及别名

    whatis  ls              #解释命令

    echo  $PATH         环境变量

    好啦!这次小编的Linux笔记分享就到这里啦!希望对你们有所帮助,感兴趣的同学记得关注我们的公众号,期待下一次的Linux推文呀!动动你们的小手指点击在看,让更多人了解到Linux!

     

    关注白云瑞翼大数据

    了解更多技能

    d3dc4d4b51c4c0c813bbe994fd3f966d.png

    文稿:谢锦铭 排版:杨健怡 陈彦廷 审核:冯焱

    展开全文
  • find / -name xxxxx 转载于:https://www.cnblogs.com/LambertL/p/10395849.html

    find / -name xxxxx

    转载于:https://www.cnblogs.com/LambertL/p/10395849.html

    展开全文
  • whereis 和 which 命令都是只能搜索系统命令命令,而 locate 命令才是可以按照文件名搜索普通文件的命令。 但是 locate 命令的局限也很明显,它只能按照文件名搜索文件,而不能执行更复杂的搜索,比如按照...
  • Linux文件搜索命令

    2018-10-02 17:53:25
    Linux搜索命令列表 文件搜索命令locate 命令搜索命令whereis与which 文件搜索命令find 字符串搜索命令grep find命令与grep命令的区别 文件搜索命令locate locate [文件名] 在后台数据库中按文件名搜索,搜索速度更...
  • 从文件中搜索并显示文件名当你从不止一个的文件中搜索时,默认它将显示文件名:复制代码代码如下:grep "word" 文件名grep root /etc/*示例输出:复制代码代码如下:/etc/bash.bashrc: See "man sudo_root" for ...
  • Linux搜索查找命令

    2021-03-17 21:35:06
    Linux搜索查找命令在这里插入代码片 find 查找文件或者目录 find [搜索范围] [匹配条件] (1)按文件名:根据名称查找/目录下的filename.txt文件。 [root@centos ~]# find /opt/ -name *.txt (2)按拥有者:查找/...
  • 搜索命令whereis命令搜索命令示例:whereis命令搜索命令所在路径及帮助文档的所在位置参数:b 只查找可执行文件m 只查找帮助文件which 命令搜索命令所在路径以及别名示例:which命令名find文件搜索命令示例:#1....
  • find命令是用于搜索文件的,which是在环境变量中搜索,whereis是在准备好的库里搜索,locate是通过数据文件进行搜索。 在最小化安装的系统中一般locate命令是需要自己安装的,,安装的命令是:yun install -y ...
  • find命令:find命令是用于搜索文件的,which是在环境变量中搜索,whereis是在准备好的库里搜索,locate是通过数据文件进行搜索。在最小化安装的系统中一般locate命令是需要自己安装的,,安装的命令是:yun install ...
  • locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库文件,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以...
  • 2.23/2.24/2.25 find命令find 搜索文件的命令which ls:从环境变量 echo $PATH 中找的whereis ls : 可以搜索,搜的不全安装: locate[root@wangshuang-01 ~]# yum install -y mlocate模糊搜索:locate +关键字find /...
  • 文件搜索命令一、文件搜索命令:find 一、文件搜索命令:find 命令名称:find 命令所在路径:/bin/find 执行权限:所有用户 功能描述:文件搜索 语法:find   [搜索范围]   [匹配条件] 根据文件名查找 ...
  • Linux 文件搜索命令

    2018-03-14 18:08:00
    locate 文件名 (只能搜索文件名)在后台数据库中按文件名搜索,搜索速度更快 locate install.log /var/lib/mlocate 存放着文件名的数据#locate命令所搜索的后台数据库 如果有新创建的 只...
  • 也就是说 whereis 不能搜索普通文件,只能搜索系统命令2、whichwhich 也是搜索系统命令命令,和 whereis 命令区别在于,如果这个命令有别名,则还可以找到别名3、locate可以按照文件名搜索文件优点:按照数据库...
  • 1 命令格式: $ find <指定目录> <指定条件> <指定动作> 最常见示例:查找文件名(忽略大小写) $find . -iname sqlquery.java 1.1 <指定目录>: 所要搜索的目录及其所有...
  • linux 文件搜索命令

    2020-05-18 10:24:34
    目录 ​​​​​​​​​​​​​​ ...locate 文件名 在后台数据库中按文件名搜索搜索速度更快 /var/lib/mlocate #locate 命令搜索的后台数据库 updatedb 更新数据库 /etc/updatedb.conf 配置文件...
  • linux搜索命令

    千次阅读 2021-01-24 14:53:39
    说明:locate命令不在系统中搜索文件(即不遍历整个系统),而是在/var/lib/mlocate(centos7中为此目录,可使用locate locate命令查看此目录路径)数据库中搜索,/var/lib/mlocate数据库默认每天更新一次,要查找...
  • 1 命令格式:$find最常见示例:查找文件名(忽略大小写)$find.-inamesqlquery.java1.1 :所要搜索的目录及其所有子目录。默认为当前目录。find默认递归指定目录。目录可以有多个,目录之间要用空格分开。[admin@r42h...
  • 命令:for /r c:\ %i in (*.txt) do @echo %i 注释:for 循环的意思  /r 按照路径搜索  c:\ 路径  %i in (*.txt) 每一个txt文件  do @echo 就是输出 %i 输出文件路径 2.在C盘下搜索所有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,793
精华内容 717
关键字:

linux搜索文件名命令

linux 订阅