Questions tagged «xargs»

xargs是一个执行另一个命令并从stdin生成其参数的命令

1
如何获得xargs“并行处理器”的索引?
假设我有两个资源,分别名为0和1,只能以独占方式访问。 有什么方法可以恢复xargs启动的“并行处理器”的“索引”,以便将其用作免费的互斥服务?例如,考虑以下并行计算: $ echo {1..8} | xargs -d " " -P 2 -I {} echo "consuming task {}" consuming task 1 consuming task 2 consuming task 3 consuming task 4 consuming task 5 consuming task 6 consuming task 7 consuming task 8 我的问题是,是否存在一个神奇的词,例如index,输出看起来像 $ echo {1..8} | xargs -d " …

7
xargs和vi-“输入不是来自终端”
我的php.ini系统上遍布整个系统,大约有10个文件,我想快速浏览它们。我尝试了以下命令: locate php.ini | xargs vi 但是vi警告我Input is not from a terminal,然后控制台开始变得很奇怪-之后,我需要按:q!退出vi,然后从ssh会话断开连接,然后重新连接以使控制台再次正常运行。 我认为我有点了解这里发生的事情-基本上,该命令在vi启动时尚未完成,因此该命令可能尚未完成,vi并且不认为终端处于正常模式。 我不知道如何解决它。我搜索过Google以及运气不好的unix.stackexchange.com。


9
将stdin传播到并行进程
我有一个处理标准输入上的文件列表的任务。程序的启动时间很长,每个文件花费的时间差异很大。我想产生大量的这些进程,然后将工作分派给不忙的人。有几种不同的命令行工具几乎可以满足我的要求,我将其缩小为两个几乎可以使用的选项: find . -type f | split -n r/24 -u --filter="myjob" find . -type f | parallel --pipe -u -l 1 myjob 问题是split进行纯循环,因此其中一个进程落后于并停留在后面,从而延迟了整个操作的完成;而parallel想要每N行或每字节输入生成一个进程,而我花了太多时间在启动开销上。 是否有这样的东西可以重用进程和馈送线到任何具有无阻塞标准输入的进程?


4
我如何用`wc -l`获得单行?
我添加了一个git别名,以提供历史记录中特定文件的行数: [alias] lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc 但是,wc -l报告的是多个总计,因此,如果我有超过10万行,它将报告它们的总计,然后继续。这是一个例子: <100k线(所需输出) $ git lines \*.xslt 46 packages/NUnit-2.5.10.11092/doc/files/Summary.xslt 232 packages/NUnit-2.5.10.11092/samples/csharp/_UpgradeReport_Files/UpgradeReport.xslt 278 total > 100k行(必须通过管道传输到grep "total") $ git lines \*.cs | grep "total" 123569 total 107700 total 134796 total 111411 total 44600 total …
12 files  xargs  wc 

2
使用xargs grep多种模式
我有一个文件,其中包含我要grep的字词,每个字词是文件中的一行。我以为我可以用xargs做到这一点。我能够从这样的手册页中的示例中收集到什么 find ./work -print0 | xargs -0 rm xargs将pre-pipe命令的输出附加到其参数的末尾。因此,如果发现返回report.doc,则xargs将构造rm report.doc。这种理解正确吗? 因此,由于我希望文件中的值位于grep命令的中间,因此需要指定一个占位符。在玩耍时,我尝试过{},但没有成功: $> cat strings.txt | xargs grep {} subdirectory/* grep: string1: No such file or directory grep: string2: No such file or directory xargs是正确的工具吗?如果是这样,语法是什么?
12 grep  xargs 

10
使用Shell脚本从字符串中删除所有重复的单词
我有一个像 "aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc" 我想从字符串中删除重复的单词,然后输出将像 "aaa,bbb,ccc" 我尝试过此代码源 $ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs 使用相同的值可以正常工作,但是当我提供变量值时,它也会显示所有重复的单词。 如何删除重复的值。 更新 我的问题是如果用户相同,则将所有对应的值添加到单个字符串中。我有这样的数据-> user name | colour AAA | red AAA | black BBB | red BBB | blue AAA | blue AAA | red CCC | …

1
xargs -I选项
该xargs的手册说: -I replace-str --replace [= replace-str] -i [replace-str] 用从标准输入中读取的名称替换初始参数中出现的replace-str。 我不明白这部分内容: with names read from standard input. 例如发生了什么事: find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo | wc -l 上面的代码计算了目录中的文件/目录总数。 有人可以帮我解释一下吗?
12 xargs 


3
如何使用不同的参数重复执行命令?
我在Ubuntu上。我复制了一些参数(以换行符分隔),可以使用xsel这样打印出来 $ xsel arg1 arg2 arg3 arg4 ... 现在,我想将这些参数中的每一个用于另一个命令,并在有参数的情况下执行该命令。 所以我尝试了 $ xsel | mycommand "constantArgument" $1 但是,此操作mycommand仅对第一个参数执行。如何为每个参数执行它?

2
重新格式化大量XML文件
我正在处理分散在整个嵌套目录结构中的大量XML文件。 我尝试了以下方法: $ find . -name "*.xml" -type f | xargs -- xmllint --format 问题在于会在屏幕上生成格式化的XML输出,但不会更改文件。 如何更改此命令,以便更改实际文件内容?
11 find  xargs  xml 

5
找到 xargs shasum(过早)创建校验和文件本身的校验和,并且在检查时失败
我的问题(在带有的脚本中#!/bin/sh)如下:我尝试出于归档目的对目录中的所有文件进行校验和。具有所有文件名的校验和(在我的情况下为sha1)文件应位于同一目录中。假设我们有一个~/test包含文件f1和的目录f2。 mkdir ~/test cd ~/test echo "hello" > f1 echo "world" > f2 现在用 find -maxdepth 1 -type f -printf '%P\n' | xargs shasum 完全符合我的要求,它仅列出当前目录的所有文件并计算sha1和(maxdepth可能在以后更改)。STDOUT上的输出为: f572d396fae9206628714fb2ce00f72e94f2258f f1 9591818c07e900db7e1e0bc4b884c945e6a61b24 f2 不幸的是,当尝试使用 find -maxdepth 1 -type f -printf '%P\n' | xargs shasum > sums.sha1 生成的文件将显示自身的校验和: da39a3ee5e6b4b0d3255bfef95601890afd80709 sums.sha1 f572d396fae9206628714fb2ce00f72e94f2258f f1 9591818c07e900db7e1e0bc4b884c945e6a61b24 f2 并因此在以后失败shasum …
10 find  xargs  checksum  hashsum 

6
删除名称中带有空格的文件
我正在尝试删除名称中带有空格的所有文件。我正在使用以下命令。但这给我一个错误 命令: ls | egrep '. ' | xargs rm 在这里,如果我仅使用ls | egrep '. '命令,它将为我提供所有文件名,文件名中带有空格。但是,当我尝试将输出传递给rm时,所有空格(前导或尾随)都会被删除。因此我的命令未正确执行。 关于如何删除名称中至少有一个空格的文件的任何指针?
10 shell  quoting  rm  xargs 

4
格式化xargs输出
我想更改输出xargs显示的格式 cat k.txt 1 2 3 和 cat k.txt | xargs 1 2 3 但是我想有1, 2, 3或1|2|3。有什么建议?
10 xargs 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.