首页 > 其他分享 >xargs

xargs

时间:2022-12-16 11:04:25浏览次数:27  
标签:tmp xargs cdly cat ls root

1、描述

# 作用: 能够处理stdin并将其转换为特定命令的命令行参数
# 语法: command | xargs

2、参数

参数

描述

-n num

执行一行中显示的字段数,默认以空白和换行符分割每个参数

-d IFS

自定义定界符来分割参数

-a file

从文件中读入数据作为sdtin

-e flag、-E flag

flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止

-I {}

指定了替换字符串

-P num

一次运行的最大进程数(一般建议和cpu核实一致)

3、技巧

1、只要我们把"find"的输出作为"xargs"的输入,就必须将"-print0"与"find"结合使用,以字符"null('\0')"来分隔输出
比如: 用find匹配并列出所有的".txt"文件,然后用xargs将这些文件删除: find . -type f -name "*.txt" -print0 | xargs -0 rm -f这样就可以删除所有的".txt"文件;xargs -0将\0作为输入定界符

2、查询结果为空时处理方式 建议使用 -I 或 -i
[root@ /cdly/tmp]# ll /tmp/
总用量 0
[root@ /cdly/tmp]# ls /tmp/*.log 2>/dev/null|xargs ls
file
[root@ /cdly/tmp]# ls
file
[root@ /cdly/tmp]# ls /tmp/*.log 2>/dev/null|xargs -i ls {}
[root@ /cdly/tmp]#
[root@ /cdly/tmp]# >/tmp/a.log
[root@ /cdly/tmp]#
[root@ /cdly/tmp]# ls /tmp/*.log 2>/dev/null|xargs ls
/tmp/a.log
[root@ /cdly/tmp]# ls /tmp/*.log 2>/dev/null|xargs -i ls {}
/tmp/a.log

4、实例

[root@ /cdly]# cat file 
1 2 3
4 5 6 7
8 9 10

# -n num
# 在一行中显示
[root@ /cdly]# cat file |xargs # 输出:1 2 3 4 5 6 7 8 9 10
# 一行中显示三个字段
[root@ /cdly/tmp]# cat file |xargs -n 3
1 2 3
4 5 6
7 8 9
10

# -d IFS 以字符X进行分割字符
[root@ /cdly/tmp]# echo "splitXsplitXsplitXsplit" | xargs -d X # 输出:split split split split
[root@ /cdly/tmp]# xargs -a file echo # 输出:1 2 3 4 5 6 7 8 9 10
[root@ /cdly/tmp]# xargs -E '6' -a file echo # 输出:1 2 3 4 5
[root@ /cdly/tmp]# cat file | xargs -E '6' # 输出:1 2 3 4 5

[root@ /cdly/tmp]# cat a.txt
aa
bb
cc
[root@ /cdly/tmp]# cat a.sh
#!/bin/bash
echo $* '#'
[root@ /cdly/tmp]# cat a.txt | xargs -I {} sh a.sh -p {} -l
-p aa -l #
-p bb -l #
-p cc -l #

# -P num 指定并发的进程数量
[root@ /cdly/tmp]# time seq 5|xargs -n1 -P5 sleep

real 0m15.028s
user 0m0.000s
sys 0m0.003s

[root@ /cdly/tmp]# time seq 5|xargs -n1 -P5 sleep

real 0m5.004s
user 0m0.000s
sys 0m0.005s

标签:tmp,xargs,cdly,cat,ls,root
From: https://blog.51cto.com/cdly/5946934

相关文章

  • 管道" | "符号和xargs及exec的区别
    1.管道符号"|"  管道是一种通信机制,通常用于进程间的通信,它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入  [root@prometheus-serverb......
  • Linux输出转换命令 xargs
    一、基本用法xargs命令的作用,是将标准输入转为命令行参数。原因:大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数如下面echo......
  • OS Lab 1.6 xargs (moderate)
    1实验要求编写一个简单的UNIX​​xargs​​​程序,从标准输入中读取行并为每一行运行一个命令,将该行作为命令的参数提供。你的解决方案应该放在​​user/xargs.c​​中......
  • xargs替代for循环的一种选择
    xargs可以将标准输入转换为给其他命令作为参数。在命令不支持标准输入,或者我们不想写循环时,这会是一个很有用的命令。echo"onetwothree"|xargsmkdir比如,它会"on......
  • Linux基础11 重定向(输入重定向,输出重定向); 管道技术, tee, xargs
    1.重定向 将原本要输出到屏幕上的内容,重新指向一个文件或者设备中,屏幕上不会输出原本的内容。为什么要使用重定向: 1.当屏幕输出的信息很重要,而且希望保存重要的信息时。 ......
  • pipeline xargs命令
    linuxxargs命令的n1参数xargs(英文全拼:eXtendedARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs可以将管道或标准输入(stdin)数据转换成命......
  • find 和 xargs 和 locate
     1.find命令选项。 find命令的一般形式为:findpathname-options[-print-exec-ok]find命令的参数:pathnamefind命令所查找的目录路径。例如:用.来表示当前目录,用/......
  • xargs 命令用法
    事例1:把文件结果做为参数,查看文件大小 cat1.txt|xargs-ils-hl{}-i 用{}代替传递的数据{} 作为cat的结果,在xargs作为一个参数ls:此处不支持命......
  • xargs命令用法
    linux之xargs使用技巧原创 入门小站 入门小站 2022-06-1123:08 发表于北京收录于合集#Linux485个image-20210603130606567Unix命令都带有参数,有些命令可以接......