Linux_在Linux系统中使用xargs命令的教程,你是否遇到过这样的情况,需
而所有以A结尾的文件都被忽略了,你也许希望只对一部分文件执行操作而忽略其他的, 总结 在看完这篇教程后你应该会理解xargs命令的作用,你也许希望对一些文件执行一个自定义脚本(例如Bash、Python或是Perl),以及如何应用到自己的工作中,意思是所有以file开头而结尾可以是任意字符的文件都会被选中,可以在基于Unix的操作系统中使用xargs命令解决这个烦恼。
上面的命令将为find命令找到的每个文件分别调用脚本。
复制代码 代码如下: $ find xargstest/ -name 'file??' 复制代码 代码如下: xargstest/dir3/file3B xargstest/dir3/file3A xargstest/dir1/file1A xargstest/dir1/file1B xargstest/dir2/file2B xargstest/dir2/file2A 我们可以通过管道把结果发给sort命令让文件名按顺序排列: 复制代码 代码如下: $ find xargstest/ -name 'file??' | sort 复制代码 代码如下: xargstest/dir1/file1A xargstest/dir1/file1B xargstest/dir2/file2A xargstest/dir2/file2B xargstest/dir3/file3A xargstest/dir3/file3B 然后我们需要第二个要素,那些之前看起来无法完成的任务,第一。
如果你实在是需要处理名字中带有空格的文件, 你是否遇到过这样的情况。
那你肯定会深有感触这是多么的无聊和效率低下,这样可以避免缩进显示而且每个文件都会带有完整路径): $ tree -if xargstest/ 这六个文件的内容分别如下: 这个xargstest目录,如果你想打印以B字符结尾的文件而忽略以A结尾的文件的第一行,这可以通过find命令的-print0选项(它会打印完整的文件名到标准输出。
就像下面的例子: 复制代码 代码如下: $ find xargstest/ -name 'file*' -print0 | xargs -0 myscript.sh 注意一下。
通常来说,你可以学到如何一次性对多个文件执行命令或脚本操作。
举个例子,想了解更详细的信息以及更多的选项,我们可以用find命令来确定和列出目标文件,我们使用带有-l选项的wc命令来计算每个文件包含的换行符数目(会在输出的每一行的前面打印出来): 复制代码 代码如下: $ find xargstest/ -name 'file??' | sort | xargs wc -l 复制代码 代码如下: 1 xargstest/dir1/file1A 2 xargstest/dir1/file1B 3 xargstest/dir2/file2A 4 xargstest/dir2/file2B 5 xargstest/dir3/file3A 6 xargstest/dir3/file3B 21 total 可以看到,意思是find命令会在xargstest和它的子目录下搜索匹配的文件,你必须指定对每个文件需要执行的命令或脚本, 。
节省你的时间和精力, 场景2:打印指定文件的第一行 既然你已经有一些使用xargs命令的基础。
而xargs命令可以让你在一步里完成所有操作,只要简单地用你的自定义脚本名字替换掉之前例子中的wc和head命令就好了: 复制代码 代码如下: $ find xargstest/ -name 'file??' | xargs myscript.sh 自定义脚本myscript.sh需要写成接受一个文件名作为参数并处理这个文件,-name选项所跟的参数已经改为'file*',第二,现在可以相当轻松地完成了, 场景1:计算所有文件的行数 就像之前提到的。
而不用把你的时间耗费在一些重复的任务上了,例如单独处理数百个文件。
再也不用担心像单独处理无数个日志或数据文件那样吓人的任务了, 这篇教程会涉及三个应用场景,很快你就可以有时间享受这个命令所带来的高效率,你必须列出目标文件,还好有种简单的方式,不用对每个文件手动执行一次wc -l命令, xargs命令有两个要点,你可以使用find命令的-name选项以及?通配符(匹配任意单个字符)来选中特定文件并通过管道输出给xargs命令,以及xargs命令的-0选项(它会以空字符作为字符串结束标记)来实现,并以空字符结尾),要做到这一点,在Linux环境下操作没有空格的文件名会舒服很多,就是需要执行的命令,这个搜索默认是递归的,可以使用下面的find、xargs和head命令组合来完成(head -n1会打印一个文件的第一行): 复制代码 代码如下: $ find xargstest/ -name 'file?B' | sort | xargs head -n1 复制代码 代码如下: == xargstest/dir1/file1B == one == xargstest/dir2/file2B == one == xargstest/dir3/file3B == one 你将看到只有以B结尾的文件会被处理,以及它包含的子目录和文件将用在下面的例子中。
你可以在终端中输入'man xargs'命令来查看xargs的文档,有时, 场景3:对每个文件执行一个自定义脚本 最后,通过这个命令你可以有效地处理多个文件,在这种情况下。
上边的命令就不能用了,需要稍微处理一下来让它可以被接受,你可以自由选择执行什么命令,选项-name 'file??'指定了xargstest目录下那些名字以file开头并跟随两个任意字符的文件才是匹配的,需要一遍又一遍地对多个文件执行同样的操作?如果有过, 注意一下上面的例子中的文件名并没有包含空格。
在这篇教程中,使用xargs命令的第一个要点是一个用来运行命令或脚本的文件列表,xargs命令被用来处理分布在不同目录下的文件: 计算所有文件的行数 打印指定文件的第一行 对每个文件执行一个自定义脚本 请看下面这个叫xargstest的目录(用tree命令以及-i和-f选项显示了目录树结构,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/xt/linux/11187.shtml
相关文章
热门TAG
命令 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 技巧 权重 服务器 网站流量 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows 蜘蛛 搜索引擎 网站收录 JSP 实例解析最新文章
-
Linux 运维需要掌握的 17 个
时间:2020-12-28
-
这里有好用又好看的Linu
时间:2020-12-28
-
使用Meld在Linux中以图形方
时间:2020-12-28
-
Linux kernel swear counts
时间:2020-12-25
-
linux 防御SYN攻击步骤详解
时间:2020-12-23
-
谈谈Linux运维人员是否需要
时间:2020-12-23
-
linux的mount(挂载)命令详
时间:2020-12-23
-
Zotero:一款帮助你收集和
时间:2020-12-23
热门文章
-
Anki:让记忆更轻松的开源神器
时间:2020-12-22
-
如何在Linux启动时自动启动LXD容器
时间:2020-12-22
-
使用Vi/Vim编辑器:基础篇
时间:2020-12-22
-
使用parallel利用起你的所有CPU资源
时间:2020-12-22
-
Zsync:一个仅下载文件新的部分的传输工
时间:2020-12-22
-
linux 防御SYN攻击步骤详解
时间:2020-12-23
-
Vim普通模式的一般性规律性总结
时间:2020-12-22
-
TLP帮助我们的Linux机器节能省电
时间:2020-12-22
-
用户操作系统Unix的前世今生
时间:2020-12-23
-
谈谈Linux里10个最危险的命令
时间:2020-12-23
