Questions tagged «xargs»

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

3
如何从`find`输出打开多个文件?
我知道我可以打开目录中的多个文件,如下所示: find -name *.foo -xargs <command> {} \; 这种方法有效,但是当尝试同时在gedit中打开一堆文本文件时,它会依次打开它们(关闭一个文件时,将打开下一个文件)。 我想同时打开所有这些文件。我该如何实现?
10 bash  find  xargs 

2
提供参数以使用xargs进行scp
当我跑步时svn st | awk '{print $2}',我得到: a.py b.py c.py 然后我要将scp这些文件发送到远程服务器。我努力了: svn st | awk '{print $2}' | xargs scp my_name@my_server:~/ 但这是行不通的。什么是执行此操作的正确命令? 谢谢!
10 scp  xargs 

2
在docker中查找和sed字符串时出现错误`设备或资源繁忙'
此问题仅在docker容器中发生。 仅find是罚款: find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json" find 与sed find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"|xargs sed -i "s/10.142.55.199/host02/g" 给出一个错误: /xxx/config/sed8Ey5tD: Device or resource busy 我不明白是什么sed8Ey5tD,ls看不到。我认为这是由docker造成的,但无法解决。 如何取得sed成功? 好吧,我发现这个文件是由搬运工volumed,有 volumes: /xxx/config.json : /xxx/config/config.json 在docker-compose.yml。之后docker-compose down,可以编辑文件。但是,如何在没有文件的情况下编辑文件docker-compose down?
10 sed  find  docker  xargs 

3
正确的xargs并行用法
我正在使用xargspython脚本来处理大约3000万个小文件。我希望可以xargs用来并行化该过程。我正在使用的命令是: find ./data -name "*.json" -print0 | xargs -0 -I{} -P 40 python Convert.py {} > log.txt 基本上,Convert.py将读取一个小的json文件(4kb),进行一些处理并写入另一个4kb文件。我在具有40个CPU内核的服务器上运行。并且此服务器上没有其他正在运行的CPU密集进程。 通过监视htop(顺便说一句,还有其他监视CPU性能的好方法吗?),我发现它的-P 40速度不如预期的快。有时,所有内核将冻结并在3-4秒内几乎减少为零,然后恢复到60-70%。然后,我尝试将并行进程的数量减少到-P 20-30,但是仍然不是很快。理想的行为应该是线性加速。关于并行使用xargs有什么建议吗?

2
使用find + xargs移动文件:目标不是目录?
当我运行以下命令时: > mkdir some_dir > find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir 我收到数百行这样说: mv: target `/foo/bar/XX.csv` is not a directory 为什么?我以为xargs会执行: mv /foo/barXX.csv some_dir 对于find找到的每个文件。这是怎么回事?顺便说一下,这是zsh 更新: 更新1: 我试过了: find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir 但是然后我得到了几行像: mv: cannot stat `{}': No …
9 find  xargs 

3
将xargs参数作为字符串传递给带有'>'的另一个命令?
假设我在中有一堆文件/tmp/。 我做 find . -type f | xargs -iFILES 我想md5sum在每个文件中做一个,输出到一个具有相同名称但带有.md5扩展名的文件。 find . -type f | xargs -iFILES md5sum FILES > FILES.md5 应该为find命令找到的每个文件创建一个md5文件。相反,它将在磁盘上创建单个FILES.md5文件,其中包含所有文件的校验和。 我如何对md5sum命令说FILES代表当前文件名而不是FILES文字字符串?

3
如何使用逗号分隔列表作为下一个命令的参数
我有一个脚本s1,输出以','分隔的数字列表1,2,3,4。现在,我想将这些数字s2作为参数提供给脚本,以便s2将在每个数字上运行并在单独的行中输出其结果。例如,如果s2将数字乘以2,这就是我要查找的结果: 2 4 6 8 我现在正在做的是: s1 | xargs -d "," | xargs -n1 s2 但是我觉得我这样做是愚蠢的!所以我的问题是: 正确的做法是什么? 我的解决方案的问题在于,它两次调用xargs并两次对输入进行迭代,这当然对我来说是不合理的。答案xargs -d "," -n1似乎不错,但我不确定是否只重复一次。如果是这样,请在您的回答中确认这一点,我会接受。顺便说一句,我宁愿不使用Perl,因为它仍在迭代两次,而且Perl在许多系统上可能不存在。
9 pipe  xargs  arguments 

5
如何使xargs处理cat中的空格和特殊字符?
我有一个file包含名称列表的列表。即: Long Name One (001) Long Name Two (201) Long Name Three (123) ... 带有空格和一些特殊字符。我想用这些名称来制作目录,即: cat file | xargs -l1 mkdir 它使用空格分隔各个目录,即Long,Name,One,Two,Three,而不是 Long Name One (001),Long Name Two (201),Long Name Three (123)。 我怎样才能做到这一点?

2
通过“ xargs”将变量从“ ls”传递到“ tar”
我正在尝试做类似的事情 ls -t | head -n 3 | xargs -I {} tar -cf t.tar {} 来归档最后3个修改过的文件,但最终每个文件分别运行tar命令,最后我剩下一个tar文件,其中包含3个文件中的最后一个(按它们的顺序)。我知道我没有正确使用'xargs',但是搜索没有帮助;我发现也不起作用的示例。甚至更简单的命令 ls | xargs -I {} tar -cf t.tar {} 最后以一个tar文件结尾,该文件仅包含该目录中的一个文件。
9 linux  ls  tar  xargs 

6
按大小查找图像:查找/文件/ awk
我一直在尝试找到一定高度(超过500像素)的png图像文件。我知道这file将返回图像尺寸。例: $ file TestImg1a.png TestImg1a.png: PNG image data, 764 x 200, 4-bit colormap, non-interlaced 但是我需要使用它来查找高度超过500px的目录中的所有文件。我知道如何打印所有文件而不论高度如何: find . -name '*.png' | xargs file | awk '{print $7 " " $1}' 但是,如何将$ 7限制为大于500的结果?
9 files  find  awk  xargs  images 

6
如何创建每个月命名的目录?
我想为每个月创建一个目录名称。我知道,在玩了一些shell之后,我知道: date -d 1/01 +%b # Gives Jan date -d 2/01 +%b # Gives Feb . date -d 12/01 +%b # Gives Dec 因此,我使用了花括号扩展,echo {1..12}/01并尝试了xargs它: echo {1..12}/01 | xargs -n 1 -I {} date -d {} +%b 但这失败了:/(此后我想申请mkdir)。我怎样才能做到这一点?

3
取消所有与_PROXY匹配的ENV变量
我正在尝试取消匹配的所有环境变量_PROXY: env | grep -i _proxy | column -t -s '=' | awk '{ print $1 }' | grep -iv 'no_proxy' | xargs -0 -I variable unset variable 却失败了xargs: unset: No such file or directory。 但是,如果尝试更改unset为echo,那么一切似乎都可以按预期进行:我得到了一组已设置的变量。 env | grep -i _proxy | column -t -s '=' | awk '{ print …

2
为什么xargs传递给subshel​​l时会跳过第一个参数?
寻找一种在xargs单行代码中调用多个命令的方法,我在findutils中找到了从xargs调用shell的建议,如下所示: $ find ... | xargs sh -c 'command $@' 有趣的是,如果我这样使用xargs,由于某种原因,它会跳过第一个参数: $ seq 10 | xargs bash -c 'echo $@' 2 3 4 5 6 7 8 9 10 $ seq 10 | xargs -n2 bash -c 'echo $@' 2 4 6 8 10 我的shell或xargs版本有问题吗?该文件不准确吗? 使用xargs(GNU findutils)4.4.2和GNU bash,版本4.3.11(1)-release。
8 shell  xargs 

2
xargs不使用我的“ ls”别名
在AIX上(但在HP-UX上也会发生这种情况),我的路径中有GNU ls,它也别名为ls。 当我使用xargs时,它改用标准Unix ls而不是别名。 例如(flocate是一个可以找到搜索主题确切路径的函数): flocate mirrorvg | xargs ls -lh ls: illegal option -- h usage: ls [-1ACFHLNRSabcdefgiklmnopqrstuxEUX] [File...] ls -lh /usr/sbin/mirrorvg -r-xr-x--- 1 root system 37K apr 3 2014 /usr/sbin/mirrorvg* 为什么xargs不使用ls别名?
8 aix  xargs  hp-ux 

4
如何在有空格的grep输出上执行xargs grep?
我正在基于正则表达式搜索文件,然后尝试在这些文件中搜索内容。例如,我有类似 #Find all C++ files that match a certain pattern and then search them find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>" 我遇到的问题是某些路径中有空格,这会造成混淆xargs。我知道,如果我只是使用find,则可以使用-print0参数(以及上的-0参数xargs)来防止xargs将空格视为定界符。有类似的东西grep吗? 还是我完全以错误的方式解决了这个问题?天真,find要grep以xargs grep对我来说很有意义,但我持开放的态度产生相同的结果的其他方法。
8 shell  grep  find  quoting  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.