find、xargs、grep基本用法

xargs命令详解 概述 xargs可以读取标准输入和管道中的数据,用于弥补有些命令(如echo、kill、rm)不能从管道中读取数据的不足。 使用echo,输出结果为空,因为它不能从管道中读取数据 不指定程序时xargs默认会将数据传递给echo,上面的命令等价于 cut -d: -f1 /etc/passwd | xargs echo 选项 -0(数字零) xargs默认以空格、Tab制表符、回车符为分隔符和结束符,当有的文件本身包含空格时,就会出问题 xargs会把’hello world.txt’识别为两个文件 阅读详情

find命令
在linux目录下,当需要找某个文件或者目录时使用,文件和目录都可以查找。find命令常用来搜索目录树中的文件或者目录,并可对搜索出来的目录或文件执行某些操作。
命令格式:find pathname -options [-print -exec -ok…],其中pathname表示在pathname这个目录下寻找。
-options表示find命令的常用选项,主要有
(1)、-name 表明按文件或目录名来进行查找;
(2)、-type 表明将按文件类型来查找;
(3)、-perm 表明将按文件或目录权限来查找;
(4)、-user 表明将文件或目录的所有者查找;
(5)、-group 表明将按文件或目录所属的组来查找;
(6)、-mtime -n (或+n) 表明按照文件的更改时间来查找文件, 时间都是距离此刻的时间,- n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
-print表示将find命令匹配的文件输出到标准输出,实际上用的时候加与不加都是标准输出。
-exec和-ok是一样的含义,都是将find命令匹配到的文件或目录执行-exec 后面接的linux命令。只是-ok以更安全的方式在执行-ok后面接的命令,在执行这些命令前都要对用户进行询问。-exec选项的命令形式:command {} \ 注意{}和\之间有空格。
例:find ./ -name “*.cpp” -exec rm -f {} \;
查找当前目录及其子目录中的.cpp文件,并将其删除。其中{}表示find的结果。
另外,我们看看-print的作用,以及-exec和-ok的区别。首先执行:find ~/test -type d -print -ok ls -l {} \;
这里写图片描述
执行: find ~/test -type d -exec ls -l {} \;
这里写图片描述
执行: find ~/test -type d -print -exec ls -l {} \;
这里写图片描述
对比三个结果可以看出,加-print和不加-print区别在于是否会显示find查找出来的目录。并且-ok与-exec的区别在于-ok在执行命令时会让用户确认。这里find ~/test -type d,在~/test目录下查找目录,结果包括了当前目录,以及显而易见的其他两个目录。然后这个结果又被这样执行:ls -l {查找出来的目录} 。
常用形式:find . -name xxxx 表示在当前目录及其子目录下搜索xxxx文件或目录。实际使用中发现find -name xxxx也可以。

grep
当想知道某个关键字xxx在那些文件里面的那些行出现的时候,用这个命令。这个命令可以配合正则表达式实现强大的功能。
通常用法:grep -nr xxx ./ 在当前目录及其子目录下搜索xxx关键字(递归搜索是-r的作用),并在匹配行号后面显示行号(显示行号是-n的作用)。
这样简单的命令基本满足日常linux系统使用的基本需求。但是还是在一些场景下需要更复杂一点的命令。比如grep -nr xxx ./ 命令会对当前目录及其子目录下面的所有文件进行匹配,很多情况下二进制文件也会出现在结果中,导致每次查找都很耗时,降低了使用该命令的欲望。find、xargs、grep配合使用可以提高一些效率。

find、xargs、grep配合使用。
例:find . -name “*.py”|xargs grep test
从当前目录及其子目录的py文件中搜索test关键字。这里需要注意的一点是:命令中有xargs和没有xargs有明显的差异。比如命令find . -name “.py” |grep test ,我们有时认为只要用管道命令将find和grep串起来就可以实现在py文件中搜索test关键字的目的。但是这个的命令结果并不是我们想要的。这个命令找出的是“.py”文件,并且文件名中含有test的文件。命令结果搜索的是目录或者文件。
原因在于find命令的结果是一个标准输出,这里的标准输出可以认为就是输出一串字符串。利用管道将这个标准输出作为输入传递给grep命令,当然grep会在一串字符串里面进行筛选。
而xargs命令是给其他命令传递参数的一个过滤器,常作为组合多个命令的一个工具。它主要用于将标准输入数据转换成命令行参数,xargs能够处理管道或者标准输入并将其转换成特定命令的命令参数。也就是说find的结果经过xargs后,其实将find找出来的文件名逐个作为了grep的参数。grep再在这些文件内容中查找关键字test。
这些基本的命令还有很多的选项,参数等。以后在实践过程中,遇到有用的,可以提高效率的用法再补充进来。

Linux 进阶】命令 xargs 详解 阅读详情

相关推荐

Linux基础:xargs命令-I选项使用技巧

这篇文章使用具体示例来介绍一下xargs命令-I参数的常见使用方法。

知行合一 止于至善 1万+

Linux命令_xargs & 批量杀进程、批量拷贝文件、组合字符串

Linux命令xargs、批量杀进程、批量拷贝文件

m0_61066945的博客 1万+

Jetson AGX ORIN硬件初始化和环境部署

orin预安装了ubuntu20.04,只需开机,像重装系统一样设置用户信息即可,可以参考官网的教程[https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit],官网提供了两种方式:一种是orin + 显示器,orin有提供DP接口,你需要准备一台显示器,最好也是有DP口的,因为我用DP转HDMI的连的,分辨率会受影响。确认安装的路径,一般直接回车安装在默认的 /home/你的名字/anaconda3。

TracyGC的博客 3780

Linux学习---find命令使用技巧

1、查找文件 Linux中查找文件的命令为“find”命令,syntax: find [起始目录] 寻找条件 操作如,从根目录下开始查找abc.cpp文件  find / -name abc.cpp  在当前目录下所有.cpp文件  find . -name "*.cpp" find命令,配合-exec参数,可以对查询的文件进行进一步的操作 -exec 参数后面跟的是command命

Nation_chen的专栏 1012

find匹配第一个_【141】Linuxxargsgrep、print0和xargs 0用法

内容目录(原文见公众号python宝)一、xargs 介绍1.1 xargs 介绍 1.2 读取输入数据重新格式化后输出1.3 xargs 结合 find 使用二、grep介绍2.1 grep 介绍 2.2 查找并打印含有某后缀的并包含某字符的这一行2.3 以递归的方式查找2.4 反向查找2.5 文件太大,无法直接使用cat时2.6 grep多个过滤条件2.7 grep 结合find使...

weixin_39612332的博客 742

findgrepxargs、sort、uniq、tr、cut、paste、wc、sed、awk的常见用法

findgrepxargs、sort、uniq、tr、cut、paste、wc、sed、awk的常见用法; 提供的例子和参数都是最常用和最为实用的; 对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧; 01 find 文件查找 1 查找txt和pdf文件## .表示当前目录下 find . ( -name "*.t...

simple_code 494

Linux下字符串及文件处理 grep/find/awk/xargs

grep/find/awk/xargs常用命令及选项

li_kin的博客 1007

shell find xargs grep 用法

查查当前目录下所有 python中,包含 “pack_item_attr”的python 文件。

cyong888的专栏 278

如何在Linux上使用xargs命令

大家好,我是良许。 在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令。xargs 可以将一个命令的输出作为参数发送给另一个命令。 在 Linux 中,所有标准的应用程序都有与之关联的三个数据流。分别是标准输入流(stdin),标准输出流(stdout)和标准错误流(stderr)。这些流通过文本来运行,我们使用文本将输入(stdin)发送到命令,然后响应(stdout)将会以文本形式显示在终端窗口上。错误消息也

码到成功 1593

xargs 命令 -I {} 参数的含义及应用

xargs 命令遇到 {} 符号时,它会将其替换为输入中的值,然后执行指定的命令。此命令会列出 /etc/passwd 文件中以 user 开头的用户帐户,然后根据 : 分隔符对其进行分割并只取第一列,最后使用 {} 符号将用户名作为参数传递给 xargs 命令,然后执行 sudo userdel 删除用户帐户。因此, -I{} 选项可以让我们在 xargs 命令中自定义替代字符串,使得我们能够精确地控制被传递的参数和参数之间的分隔符,这有助于构建更加复杂和准确的命令。

菜鸟先飞 1万+

linux学习:xargsgrep用法整理

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行...

我是小超斌 1万+

linux查询筛选命令 grepxargs

grep xargs

teng_liang的博客 6520

grepfindxargs使用方法

grep pattern [file...](1)grep 搜索字符串 [filename](2)grep 正则表达式 [filename]在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号 1、 参数:  -I :忽略大小写  -c :打印匹

u013176681的专栏 1246

xargs(1) command

xargs 从标准输入构建和执行命令行。xargs 可以将 stdin 中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的字符串内含有空格的时候,xargs 可能会误判。简单来说,xargs 的作用是给其他命令传递参数,是构建单行命令的重要组件之一。find /sbin -perm +700 | ls -l # 这个命令是错误,因为标准输入不能作为ls的参数。

Doublelv 的博客专栏。 8520

shell编程-xargs命令详解(超详细)

xargs命令是一个强大的命令行工具,可以帮助我们处理大量的输入数据,并将其传递给其他命令进行处理。通过灵活运用xargs命令的选项和示例用法,我们可以提高命令行任务的效率。以上是对xargs命令的简要介绍和常用选项的说明,希望本文能够帮助读者更好地理解和使用该命令。更多详细信息和其他选项,请参考xargs命令的官方文档或使用man xargs命令查看帮助文档。

zcs2312852665的博客 6904

xargs 命令详解

xargs 命令是 Unix 系统中一个功能强大的实用工具,它允许用户从标准输入中**参数并执行命令。它经常与其他命令一起使用,例如 findgrep,ls 等等。假设仅仅要删除目录或者名字连接等,能够相应的改 -type 參数,详细细节见 man find。(但注意 不要用 -size 1k。这个得到的是占用空间1k,不是文件大小1k的)。Linux下批量删除空文件(大小等于0的文件)的方法。就是删除1k大小的文件。

ajax_beijing_java的博客 4947

linux中强大且常用命令:findxargsgrep

linux下面工作,有些命令能够大大提高效率。本文就向大家介绍findgrep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们。本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 findxargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1、find

doupeihua的专栏 1086

grep、awk、xargs用法

grep 用于查找文件中的文本模式。awk 用于处理和分析文本数据。xargs 用于从标准输入中读取数据,并将其传递给其他命令作为参数。这些工具结合使用可以实现复杂的文本处理和数据流操作,是Shell脚本中非常常用的组件。

lihongbao80的专栏 1133

Linux命令001:findxargsgrep查找内容

1、当前目录查找内容 在linux系统中,使用findxargs以及grep可以在当前目录下查找所有文件内容。 如查找当前目录是下代码中使用syn_bus模块, find . |xargs grep -r -B 1 -A 6 -n “syn_bus”| grep -v “.svn”../syn_bus.log 查找使用syn_bus的代码的使用情况,写入文件syn_bus.lo...

IC小鸽的博客 4306

find命令

命令是 Linux/Unix 系统中用于搜索文件和目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接

qiao2458的博客 1101

NS-3车联网仿真平台搭建[源码]

本博客详细介绍了基于NS-3网络仿真平台的5G车联网仿真环境搭建过程。内容包括从准备工作、依赖包安装、NS-3下载与构建,到测试运行及可视化工具PyViz和NetAnim的配置与使用。特别强调了面向5G车联网的V2X技术特点,如低时延、高可靠性和大带宽支持,以及其在自动驾驶和车联网中的创新应用。通过具体的命令行操作和脚本示例,为读者提供了完整的搭建指南,适合相关领域的学习者和研究者参考。

上一篇: 搭建阅读android源码的环境
tianlong_cool
博客等级 码龄16年 5粉丝 2原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值