Linux输出转换命令 xargs
一、基本用法
xargs
命令的作用,是将标准输入转为命令行参数。
原因:大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数
如下面 echo 不接受标准输出做参数,可用 xargs 做转换:
$ echo "hello world" | xargs echo
hello world
二、参数
-d
指定分隔符
默认情况下,xargs
将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。
$ echo "one two three" | xargs mkdir
上面代码中,mkdir
会新建三个子目录,执行mkdir one two three
。
-d
参数可以更改分隔符
$ echo -e "a\tb\tc" | xargs -d "\t" echo
a b c
上面的命令指定制表符\t
作为分隔符,所以a\tb\tc
就转换成了三个命令行参数。echo
命令的-e
参数表示解释转义字符。
-p -t
打印将要执行的命令
-p
参数打印出要执行的命令,询问用户是否要执行。
$ echo 'one two three' | xargs -p touch
touch one two three ?...
-t
参数则是打印出最终要执行的命令,然后直接执行,不需要用户确认。
$ echo 'one two three' | xargs -t rm
rm one two three
-I
传递参数起别名
如果xargs
要将命令行参数传给多个命令,可以使用-I
参数。【貌似,会按空格或回车对参数进行分割,然后重复执行命令,而不是当成命令的多个参数】
-I
指定每一项命令行参数的替代字符串。
$ cat foo.txt
one
two
three
$ cat foo.txt | xargs -I file sh -c 'echo file; mkdir file'
one
two
three
$ ls
one two three
上面代码中,foo.txt
是一个三行的文本文件。我们希望对每一项命令行参数,执行两个命令(echo
和mkdir
),使用-I file
表示file
是命令行参数的替代字符串。执行命令时,具体的参数会替代掉echo file; mkdir file
里面的两个file
。
-l -L
指定多少行作为一个命令行参数
$ echo -e "a\nb\nc" | xargs -L 1 echo
a
b
c
-n
指定一行内多项作为一个命令行参数
$ echo {0..9} | xargs -n 2 echo
0 1
2 3
4 5
6 7
8 9
--max-procs
多线程执行
xargs
默认只用一个进程执行命令。如果命令要执行多次,必须等上一次执行完,才能执行下一次。
--max-procs
参数指定同时用多少个进程并行执行命令。--max-procs 2
表示同时最多使用两个进程,--max-procs 0
表示不限制进程数。
$ docker ps -q | xargs -n 1 --max-procs 0 docker kill
上面命令表示,同时关闭尽可能多的 Docker 容器,这样运行速度会快很多
Linux输出转换命令 xargs的更多相关文章
- Linux 参数代换 命令 xargs
xargs 命令也是管道命令中的一员.xargs命令的功能简单来说就是参数代换.那么什么叫做参数代换,这里首先要了解管道的概念.在 linux管道 命令一节中我们详细介绍了管道命令的概念.这里我们只是 ...
- 【转】Linux字符转换命令col
转自:http://www.cnblogs.com/ningvsban/p/3725464.html [root@www ~]# col [-xb]选项与参数:-x :将 tab 键转换成对等的空格键 ...
- Linux文件查找命令find,xargs详述【转】
转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...
- linux nkf 日文编码转换命令[转载]
对于日语的编码 windows : Shift-JIS Linux : 2.4内核使用EUC编码,2.6内核中使用UTF8编码 检查文件编码 nkf -g filename 通常处理字符编码都使用i ...
- linux中exec和xargs命令的区别和优劣分析
find的exec及ok命令 exec命令的格式为: exec command {} \; exec后面跟着的是操作命令,然后跟着{}表示每一个参数,然后空格,然后"\;".{}之 ...
- Linux系统常用命令权威指南
<一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f ...
- Linux:常用命令【转载】
转载于:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架 ...
- Linux 系统常见命令功能大全_【all】
Linux常见快捷键(6个) ctrl + u:剪贴光标前面 ctrl + k:剪贴光标后面 ctrl + y:粘贴 ctrl + r:查找命令 ctrl + insert:复制 shift+ ins ...
- Linux系统——awk命令
awk命令不仅仅是Linux系统的命令,也是一种编程语言,用来处理数据和生成报告(Exel),处理的数据可以是一个或多个文件(标准输入和管道获取标准输入).可在命令行上编辑操作,也可以写成awk程序运 ...
- Linux系统常用命令速查手册
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 系统信息 arch #显示机器的处理器架构(1 ...
随机推荐
- 2020年了,再不会webpack敲得代码就不香了(近万字实战)
https://zhuanlan.zhihu.com/p/99959392?utm_source=wechat_session&utm_medium=social&utm_oi=619 ...
- warning: LF will be replaced by CRLF in public/tinymce/langs/zh_CN.js
windows使用git时出现:warning:LF will be replaced by CRLF windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时 ...
- P2058
这道不难的题引发了我不少思考 我第一个版本是用vector嵌套vector写成的,后来发现没必要还存储那些已经超过24h的船,完全可以删除前面的船,因此把外层vector换成了deque. 即用deq ...
- 07-逻辑仿真工具VCS-Post processing with VCD+ files
逻辑仿真工具-VCS 编译完成不会产生波形,仿真完成之后,生成波形文件,通过dve产看波形 vcd是波形文件的格式,但是所占的内存比较大,后面出现了vpd(VCD+)波形文件 将一些系统函数嵌入到源代 ...
- 【FreeRTOS】任务调度
启动调度器接口,主要是创建空闲任务和定时器任务以及执行特定架构的启动调度器接口 // FreeRTOS\Source\tasks.c void vTaskStartScheduler( void ) ...
- NewStarCTF 2023 公开赛道 WEEK3|CRYPTO WP
一.Rabin's RSA 题目信息 from Crypto.Util.number import * from secret import flag p = getPrime(64) q = get ...
- SpringMVC08——拦截器——2021-05-11
拦截器概述 SpringMVC的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并做相应的处理. 例如:进行权限验证.记录请求信息的日志.判断用户 ...
- [转帖]离线部署单机kubenetes-1.28.4
系统版本: openEuler 22.03 (LTS-SP2) docker版本:24.0.7 kubenetes版本: 1.28.4 虚机IP: 192.168.177.138 基于 https:/ ...
- 【转帖】linux环境下使用route指令设置多个网络连接的优先级(通过修改路由表的默认网关条目)
1. 背景 在生活中的会经常遇见一台PC同时连接多个网络的场景.最典型的,一台笔记本可以同时连接一个无线网(手机热点)和一个有线网(以太网).linux和window操作系统在默认情况都会使用最早连接 ...
- CS231N Assignment1 SVM 笔记
svm.ipynb 为SVM实现一个完全矢量化的损失函数 为其解析梯度实现完全矢量化表达式 使用数值梯度检查实现结果 使用验证集调整学习率和正则化 使用 SGD 优化损失函数 可视化最终学习权重 第一 ...