首页 > 系统相关 > Linux输出转换命令 xargs

Linux输出转换命令 xargs

时间:2022-11-25 22:11:58浏览次数:38  
标签:输出 xargs two echo 命令 参数 three Linux

一、基本用法

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是一个三行的文本文件。我们希望对每一项命令行参数,执行两个命令(echomkdir),使用-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 容器,这样运行速度会快很多

标签:输出,xargs,two,echo,命令,参数,three,Linux
From: https://www.cnblogs.com/shuofxz/p/16926532.html

相关文章

  • [Linux]Shell命令(一)
    [Linux]Shell命令(一)参考资料​http://c.biancheng.net/shell/​https://zhuanlan.zhihu.com/p/264346586主要参考这两个菜鸟教程acwinglinux教程这篇博客主要目的是用......
  • linux系统下uart只能发送不能接受,buildroot安装minicom
    linux系统下uart只能发送不能接受,buildroot安装minicom1、遇到的现象在测试设备上的uart时,发现通过echo发送到PC端上,但是PC端发送过来的数据不能使用cat打印出来。2、解......
  • 例程分析:GPIO输出——使用固件库点亮LED灯
     1 编程要点①使能GPIO端口时钟;②初始化GPIO目标引脚为推挽输出模式;③编写简单测试程序,控制GPIO引脚输出高、低电平。2 代码分析 宏定义的意义:通过把硬件相关......
  • [Linux高并发服务器]进程间通信简介
    [Linux高并发服务器]进程间通信简介摘自​​牛客项目课Linux高并发服务器​​概念进程间通信IPC:InterProcessesCommunication为什么需要进程间通信进程是一个独立的资......
  • [Linux]tmux基础操作
    [Linux]tmux基础操作参考文章​​Tmux入门指南​​​​tmux/vimKnight02大佬写的,本文主要参考这个​​什么是tmuxtmux是一个终端复用器:可以激活多个终端或窗口,在每个......
  • [Linux]基础bash shell命令
    [Linux]基础操作命令参考书本《Linux命令行与shell脚本大全》复习和查询用,别的用到了在慢慢补充遍历目录目录路径绝对路径cd/usr/bin相对路径cdDocuments返回主目录cd其......
  • [Linux]vim基本操作
    [Linux]vim基本操作超级有用的健位图大小写有区别的!按键指令命令模式(1)i:进入编辑模式1(2)ESC:进入一般命令模式查找移动替换(3)h或左箭头键:光标向左移动一个字符(......
  • 如何在Linux上用tshark命令把抓包中follow的二进制流保存成文件
    目录背景解决方案背景用wiresharkwindows版本把视频流保存出来,结果只有抓包的一半,另一半丢失了。为了验证是视频流的问题还是wireshark的问题。不得已,研究起了tshark,最......
  • Linux 零拷贝技术-mmap与sendFile
    零拷贝是网络编程的关键,很多性能优化都离不开数据角度分析:在零拷贝机制中,整个数据在内存中只有一份数据,非零拷贝机制中,内核缓冲区,用户缓冲区,Socket......
  • [Linux 高并发服务器] exec函数族
    [Linux高并发服务器]exec函数族exec函数族exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件......