Questions tagged «xargs»

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

1
在bash中以空分隔输入如何执行“ head”和“ tail”?
find命令可以将文件名输出为以空分隔的字符串(如果-print0提供),并且xargs可以在-0打开选项的情况下使用它们。但是在两者之间,很难对文件进行操作的该集合- sort命令有-z开关,这使得它可能对这些文件进行排序,但head并tail没有他们。 我该怎么做head,并tail在一个方便的方式与空分隔的投入?(我总是可以创建一个简短的红宝石脚本,但我希望有更好的方法)

3
“参数列表太长”:如何在不更改命令的情况下处理它?
当我运行类似的命令时ls */*/*/*/*.jpg,出现错误 -bash: /bin/ls: Argument list too long 我知道为什么会这样:这是因为对命令参数的空间大小存在内核限制。标准建议是更改我使用的命令,以避免为参数(例如use find和xargs)占用太多空间。 如果我不想更改命令怎么办?如果我想继续使用相同的命令怎么办?我如何才能使事情“正常运行”,而不会出现此错误?有哪些解决方案?

2
xargs:在多个命令中使用相同的参数
我正在尝试编写一种单行代码,以探测df -h分区的输出并在分区之一(或几乎)没有空间时发出警报。使用xargs的部分现在把我踢了屁股... echo 95 | xargs -n1 -I{} [ {} -ge 95 ] && echo "No Space on disk {}% full -- remove old backups please" 如何使第二个{}也显示“ 95”?

2
如何阻止xargs严重合并多个进程的输出?
我正在使用xargs该选项--max-args=0(或者-P 0)。 但是,这些过程的输出将合并到stdout流中,而无需考虑适当的行分隔。因此,我经常会出现以下行: <start-of-line-1><line-2><end-of-line-1> 当我在整个输出的模式中使用egrepwith时^,xargs这弄乱了我的结果。 是否有某种方法可以强制xargs按顺序写进程输出(只要一个进程的输出是连续的,任何顺序都可以)? 还是其他解决方案? 编辑:有关用例的更多详细信息: 我想从不同的主机下载并解析网页。由于每个页面需要大约一秒钟的加载时间,因此我要并行处理几十个页面。 我的命令具有以下形式: echo -n $IPs | xargs --max-args=1 -I {} --delimiter ' ' --max-procs=0 \ wget -q -O- http://{}/somepage.html | egrep --count '^string' 我使用bash而不是Perl之类的东西,因为主机IP($ IPs变量)和其他一些数据来自包含的bash文件。

6
为什么xargs会导致apt-get中止?
我正在尝试从文件中删除软件包列表。我正在使用以下命令: cat packages | xargs sudo apt-get remove packages是我的文件,其中包含要删除的软件包列表。一切似乎都可以正常运行,但是apt-get中止而不是让我选择是或否。 我知道我可以使用该-y选项解决此问题,但是我想知道为什么会发生这种情况以及如何保留交互式选择。
17 apt  xargs 

2
我如何获得xargs来显示它生成的命令行而不运行它们?
相当数量的linux命令具有空运行选项,该选项将向您显示不执行该命令将要执行的操作。我在xargs手册页上看不到有任何可做的东西,也没有明显的方法来模仿它。 (我的特定用例是对长管道进行故障排除,尽管我确定还有其他情况) 我想念什么吗?
17 xargs 

3
通过xargs传递多个参数
我希望能够用于xargs在命令的不同部分执行多个参数。 例如,以下内容: echo {1..8} | xargs -n2 | xargs -I v1 -I v2 echo the number v1 comes before v2 我希望它会回来 the number 1 comes before 2 the number 3 comes before 4 ...等等 这可以实现吗?我怀疑我对的多次使用-I是不正确的。
17 xargs 

3
bash查找xargs grep仅一次出现
也许有点奇怪-也许还有其他工具可以做到这一点,但是。 我正在使用以下经典bash命令来查找包含某些字符串的所有文件: find . -type f | xargs grep "something" 我有很多深度的文件。第一次出现“某物”对我来说已经足够了,但是find会继续搜索,并且需要很长时间才能完成其余文件。我想做的是从grep返回查找的“反馈”,以便查找可以停止搜索更多文件。这样的事情可能吗?
16 bash  find  grep  xargs 

1
如何在xargs中使用定义的函数
这是我的代码 #!/bin/bash showword() { echo $1 } echo This is a sample message | xargs -d' ' -t -n1 -P2 showword 因此,我有一个函数showword,该函数会回显您作为参数传递给该函数的任何字符串。 然后,我xargs尝试调用该函数,一次将一个单词传递给该函数,然后并行运行该函数的2个副本。不起作用的是xargs无法识别该功能。如何实现我要执行的操作,如何使xargs与该函数一起使用showword?
16 bash  xargs  function 

2
有没有办法在管道上使用xargs?
我正在尝试自动将移动到一个文件夹的flac文件转换为另一个文件夹中的mp3。 我当前的代码行是这样的: inotifywait -m -r -q -e moved_to --format "'%w%f'" ~/test | xargs -I x flac -cd x - | lame -b 320 - /media/1tb/x.mp3 为了解释到目前为止的工作方式,inotifywait递归地监视〜/ test到那里移动的文件,并将路径和文件名输出到管道。xargs使用该名称并创建正确的flac命令,将x替换为文件名并将文件解码到另一个管道。在新管道中,lame将flac的输出处理到/ media下的mp3中。我希望xargs以某种方式到达整个管道,在lame命令中替换x或以某种方式将其发送到两个命令都可以访问的变量。我试图弄乱命名管道和爵士乐,但是在两个命令之间通过管道传输实际数据这一事实使我费解了。
15 shell  pipe  xargs  inotify 


3
如何用xargs引用参数
假设我要删除文件夹中大于1 MB的所有文件。 $ find . -size +1M | xargs -0 rm 这不会删除名称中带有空格的文件。因此,我希望它引用发送给的所有参数rm。如果find给出,Some report.docx则应传递"Some report.docx"给rm。 我怎样才能做到这一点?
15 shell  find  quoting  rm  xargs 

2
为什么此xargs命令不起作用?
我想删除所有.sh扩展名,所以这样做: ls *.sh | xargs -I {} mv {} `basename {} .sh` 但是,它不起作用,其行为类似于basename返回未更改的文件名。 为什么会这样呢? 例如,这有效: ls *.sh | xargs -I {} echo `basename {}.jpg .jpg`; 编辑: 解决方案:单引号可防止`basename ...`在运行命令之前由外壳进行评估。 ls *.sh | xargs -I {} sh -c 'mv {} `basename {} .sh`'

2
没有向xargs管道
我有一个脚本,在某些情况下,stdout上可能没有任何内容。在脚本的最后,我使用xargs将必须的行传递给另一个命令。我的问题是,当stdout上没有任何内容时,我收到典型的“用法:程序arg1 arg2”错误消息。 如何避免这种情况?
14 bash  xargs 

5
让xargs使用别名而不是二进制
在CentOS 6.5上的Bash 4.2: 在我中,~/.bash_profile我有一堆别名,包括: alias grep='grep -n --color=always' 这样我可以在运行时自动获得颜色突出显示和打印行号grep。如果我运行以下命令,则突出显示将按预期工作: $ grep -Re 'regex_here' *.py 但是,当我最近运行此命令时: $ find . -name '*.py' | xargs grep -E 'regex_here' 结果没有突出显示,并且没有打印行号,这迫使我返回并显式添加-n --color=always到grep命令中。 难道xargs没有读过环境别名? 如果没有,有没有办法做到这一点?
14 bash  alias  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.